这两天又重新学习了一下Reference,根据网上的资源做了汇总。 Java中的引用主要有4种: 强引用 StrongReference: Object obj = new Object(); obj就为一个强引用,obj=null后, 该对象可能会被JVM回收 软引用 SoftReference: ...
分类:
编程语言 时间:
2016-06-06 13:52:10
阅读次数:
228
在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用...
分类:
其他好文 时间:
2016-06-06 01:20:07
阅读次数:
198
移动设备开发中,由于移动设备(手机等)的内存有限,所以使用有效的缓存技术是必要的。android提供来一个缓存工具类LruCache,开发中我们会经常用到,下面我们就具体分析一下LruCache。
LruCache缓存数据是采用持有数据的强引用来保存一定数量的数据的。每次用到(获取)一个数据时,这个数据就会被移动(一个保存数据的)队列的头部,当往这个缓存里面加入一个新的数据时,如果这个缓存已经满...
分类:
系统相关 时间:
2016-06-06 01:14:16
阅读次数:
250
对于JVM的垃圾回收机制来说,是否回收一个对象的标准在于:是否还有引用变量引用该对象,只要有引用变量引用该对象,垃圾回收机制就不会回收它。 强引用:创建一个对象,并把这个对象赋给一个引用变量。这种引用,不会被垃圾回收机制回收,及时系统资源非常紧张,即使有些Java对象以后永远都不会被用到,JVM也不 ...
分类:
编程语言 时间:
2016-06-04 23:48:38
阅读次数:
345
1.强引用表示从属关系,引用对象拥有被引用的对象。弱引用则暗示引用对象不拥有被引用的对象。一个对象的寿命是由它被强引用多少次来决定的。只要对象还存在强引用,就不会释放该对象。 注意:但是对象之间的引用如果都是强引用就会发生强引用循环,导致该对象的内存无法释放,会造成内存泄漏的问题;解决方法是:一个对 ...
分类:
其他好文 时间:
2016-06-04 10:30:45
阅读次数:
175
前两篇我们介绍了一般的优化ListView方法以及DiskLruCache优化ListView,见android-----带你一步一步优化ListView(一)和android-----带你一步一步优化ListView(二),这一篇我们将从内存缓存的角度来完成ListView的优化,使用的是LruCache,它的主要算法原理是把最近使用的对象用强引用存储在
LinkedHashMap 中,并且...
分类:
移动开发 时间:
2016-05-30 15:15:57
阅读次数:
254
最近在跟人聊java的容器,在聊到WeakHashMap时,被问Weak是什么意思,当时没能回答出来,后面同事继续问java有哪几种引用,当时便有一种智商严重不足的感觉。于是便整理出这篇文章,希望各位多提意见。
java中提供了4个级别的引用:强引用、软引用、弱引用和虚引用。这4个引用在java.lang.ref包下:
一、强引用(FinalReference)
...
分类:
编程语言 时间:
2016-05-27 12:29:43
阅读次数:
172
CoreTelephony框架,这个框架包含了电话相关的API,可以实现监测来电,查看运营商信息等功能。下面就是具体的实现监测来电的代码 这里注意一定要把center写成一个单独的属性,并且是强引用(strong),否则如果在viewDidLoad方法里创建center,viewDidLoad方法调 ...
分类:
移动开发 时间:
2016-05-24 16:40:46
阅读次数:
164
android LRUCache解析LRU(Least Recently Used)最近最少使用算法原理缓存保存了一个强引用限制值的数量. 每当值被访问的时候,它会被移动到队列的头部. 当缓存已满的时候加入新的值时,队列中最后的值会出队,可能被回收LRUCache内部维护主要是通过LinkedHashMap实现这是一个安全的线程,多线程缓存通过同步实现?使用默认情况下,缓存的大小是由值的数量决定,重...
分类:
移动开发 时间:
2016-05-23 19:12:29
阅读次数:
398
一,可能情况: 1> timer 没有清楚 2> 循环引用 3> block引用了实例变量。 二,查找到结果竟是 1> 没有使用 property 创建的属性,默认是强引用,会造成循环引用. 2> 错误代码: 调用处如下: 导致循环引用. ...
分类:
其他好文 时间:
2016-05-23 16:52:08
阅读次数:
380