Android技术点(面试)整理

1对StrongReference、WeakReference和SoftReference的认识

分享一下《深入理解Java虚拟机》中的描述:

  • 强引用(StrongReference):就是在代码中普遍存在的,类似Object obj = new Object()这类的引用,只要强引用还存在,GC永远不会回收掉被引用的对象。
  • 软引用(SoftReference):用来描述一些还有用但非必须的对象。对于软引用关联着的对象,在系统将要发生内存溢出异常时,将会把这些对象列入回收范围之中进行第二次回收。如果这次回收还没有足够的内存,才会抛出内存溢出异常。在JDK 1.2之后,提供了SoftReference类来实习软引用。

  • 弱引用(WeakReference):也是用来描述非必须对象的,但是它的强度比软引用更弱一些,被弱引用关联的对象只能生存到了下一次GC发生之前。当GC工作时,无论当时内存是否足够,都会回收只被弱引用关联的对象。在JDK 1.2之后,提供了WeakReference类来实现弱引用。

  • 虚引用(PhantomReference):这个引用po主没有提到,不过也可以顺带了解一下。虚引用也称幽灵引用或者幻影引用,它是最弱的一种引用关系。一个对象是否有虚引用的存在,完全不会对其生存时间构成影响,也无法通过虚引用来取得一个对象实例。为一个对象设置虚引用的唯一目的就是在这个对象被GC回收是收到一个系统通知。在JDK 1.2之后提供了PhantomReference类来实现虚引用。

Java中反射的作用是什么?什么时候会用到?

  JAVA反射机制是在#运行时#,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,
  都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
  Java反射机制主要提供了以下功能:
  a)在运行时判断任意一个对象所属的类;
  b)在运行时构造任意一个类的对象;
  c)在运行时判断任意一个类所具有的成员变量和方法;
  d)在运行时调用任意一个对象的方法;生成动态代理。

  参考链接:http://segmentfault.com/a/1190000002388723#articleHeader0

ContentProvider是如何实现数据共享的

  当一个应用程序需要把自己的数据暴露给其他程序使用时,该就用程序就可通过提供ContentProvider来实现;其他应用程序就可通过ContentResolver来操作ContentProvider暴露的数据。
  一旦某个应用程序通过ContentProvider暴露了自己的数据操作接口,那么不管该应用程序是否启动,其他应用程序都可以通过该接口来操作该应用程序的内部数据,包括增加数据、删除数据、修  改数据、查询数据等。
  ContentProvider以某种Uri的形式对外提供数据,允许其他应用访问或修改数据;其他应用程序使用ContentResolver根据Uri去访问操作指定数据。
  步骤:
  1、定义自己的ContentProvider类,该类需要继承Android提供的ContentProvider基类。
  2、在AndroidManifest.xml文件中注册个ContentProvider,注册ContenProvider时需要为它绑定一个URL。
  例:
  android:authorities="com.myit.providers.MyProvider" />
  说明:authorities就相当于为该ContentProvider指定URL。
  注册后,其他应用程序就可以通过该Uri来访问MyProvider所暴露的数据了。

  接下来,使用ContentResolver操作数据,Context提供了如下方法来获取ContentResolver对象。
  一般来说,ContentProvider是单例模式,当多个应用程序通过ContentResolver来操作 ContentProvider提供的数据时,ContentResolver调用的数据操作将会委托给同一个ContentProvider  处理。
  使用ContentResolver操作数据只需两步:
  1、调用Activity的ContentResolver获取ContentResolver对象。
  2、根据需要调用ContentResolver的insert()、delete()、update()和query()方法操作数据即可
  转自:http://www.android100.net/html/201307/27/3797.html

posted @ 2015-11-09 15:00  小白第二  阅读(747)  评论(0编辑  收藏  举报