通常我们遇到内存问题时,,解决方案一般有以下的例子:1.做一些处理上的内存引用,经常使用软引用、加强引用、弱引用;2.加载在内存中的照片时,它可以处理直接在内存,例如:压缩边界。3.内存的动态恢复;4.优化Dalvik虚拟机堆内存分配;5.他们的堆内存的大小定义;6.尽量不要使用setImageBi...
分类:
移动开发 时间:
2015-09-20 14:27:22
阅读次数:
197
这篇文章,主要解决一下疑惑:1.ThreadLocal.ThreadLocalMap中提到的弱引用,弱引用究竟会不会被回收?2.弱引用什么情况下回收?3. JAVA的ThreadLocal和在什么情况下会内存泄露?带着这些疑问,自己模拟了一下ThreadLocal.ThreadLocalMap的结构...
分类:
其他好文 时间:
2015-09-18 18:14:32
阅读次数:
228
java语言中为对象的引用分为了四个级别,分别为 强引用 、软引用、弱引用、虚引用。 本文只针对java中的弱引用进行一些分析,如有出入还请多指正。 在分析弱引用之前,先阐述一个概念:什么是对象可到达和对象不可...
分类:
编程语言 时间:
2015-09-18 13:56:12
阅读次数:
159
在java中的java.lang.ref包中定义了三个引用类,分别是软引用、弱引用、和虚引用。这3个类提供了一种便捷的机制让我们可以和垃圾回收机制交互,同时也为缓存提供了一种机制,那么这三个类导致有什么作用呢? So...
分类:
编程语言 时间:
2015-09-14 19:45:19
阅读次数:
153
在objective-c的ARC模式中,请看以下代码id objc =[[NSObject alloc]init];这里id默认为强引用在强引用中,有时会出现循环引用的情况,这时就需要weak来帮忙啦int main(int argc, const char * argv[]) { id __we....
分类:
移动开发 时间:
2015-09-01 16:42:49
阅读次数:
183
__weak typeof(self) weakSelf = self的应用意思是声明了一个self类型的weakSelf,加上__weak表示它是弱引用的。整行代码就是给self定义了一个弱引用性质的替身。一般用在block上,因为block会copy它内部的变量,可能会造成循环引用,使用__we...
分类:
其他好文 时间:
2015-09-01 16:33:25
阅读次数:
209
在iOS开发的过程中,我们一般不用retain,和assign,而是用strong和weak,这时候,我们可以把strong理解为retain,而weak理解为assign,比较容易理解。
在ARC情况下:
Strong
和weak:
如果一个对象同时被两个指针所引用,例如:
Object *b1 = [[Object alloc]initAge:23];
O...
分类:
其他好文 时间:
2015-08-29 18:53:14
阅读次数:
278
弱引用(WeakReference)
用于非必需对象。被弱引用关联的对象只能生存到下一次垃圾收集发生之前。当垃圾收集器工作时,无论当前内存是否足够,都会回收掉只被弱引用关联的对象。
1. 非UI线程处理Bitmap(可以替换为其它对象)以下摘自官网class BitmapWorkerTask extends AsyncTask {
private final WeakReference im...
分类:
移动开发 时间:
2015-08-28 19:53:50
阅读次数:
382
本人博客中有一篇文章对java中的引用有详细的介绍【http://www.cnblogs.com/javaee6/p/4763190.html】,java中WeakHashMap这个类就是java弱引一个非常好的例子,也是一个比较难的例子。收集了网上一些关于WeakHashMap的详细分析的文章。猛...
分类:
编程语言 时间:
2015-08-27 21:04:54
阅读次数:
177
前言概述 在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。这就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。一般说来,如果物品已经被扔到垃圾箱,想再把它捡回来使用就不可能了。 但有时候情况并不这么简单,你可...
分类:
编程语言 时间:
2015-08-27 15:03:55
阅读次数:
241