弱引用和软引用WeakReference,SoftReference,最简讲解,以及一个应用场景
来源:互联网 发布:淘宝网书包双肩包女生 编辑:程序博客网 时间:2024/06/08 12:05
他讲的很好,但是我看了一下,有些地方讲的不是很清楚,导致我当时困惑了一会。这里简单加点内容。
实际上,
第一行就是new了一个实例,属于强引用,这个还是很好理解的。下面那一行说是弱引用,可实际上又是怎么用的呢?其实他就是让你的强引用变成了弱引用。接下来,如果你再想引用这个car的话。我举个例子。B b = new B(car);这个B类是接受一个car实例的,如果你后面这样写car ==null,这个 new Car(220000,“silver”)是会被回收的。但是如果你不把这个强引用转化为弱引用,那么当car==null的时候,你这个 new Car(220000,“silver”)是不会被回收的,这样就很危险,容易OOM。
概念已经很清晰的讲了,下面再讲一个生动的应用场景,来自某一篇文章的评论。
看到一个android里面用到,他是在gridview里面加载大量图片,然后每个图片开一个线程进行加载,而且要保证imageView被回收。因为adapter是不太可控的,不知道什么时候imageView被android设为null,而且自己的线程什么时候加载完也不确定。所以线程里面不敢用强应用,就是用的弱应用imageView
而SoftReference
就是和WeakReference有一点点的不同,SoftReference比较大方,在内存快用尽的时候才会回收这个对象。而Weak会很快就回收,强引用是就算内存不足了,也不会回收,这就是他的危险之处。
原文是http://blog.csdn.net/zmx729618/article/details/54093532,值得去看一下。
http://blog.csdn.net/matrix_xu/article/details/8424038还有这个文章也很好。
- 弱引用和软引用WeakReference,SoftReference,最简讲解,以及一个应用场景
- 内存优化:SoftReference 和 WeakReference 软引用与弱引用
- Android内存管理 强引用HardReference、弱引用WeakReference、软引用SoftReference和虚引用PhantomReference
- JAVA中的强引用、软引用(SoftReference)、弱引用(WeakReference)和幽灵引用(PhantomReference)
- java弱引用(WeakReference)和SoftReference的区别以及在android内存处理的作用
- java弱引用(WeakReference)和SoftReference的区别以及在android内存处理的作用
- java弱引用(WeakReference)和SoftReference的区别以及在android内存处理的作用
- java弱引用(WeakReference)和SoftReference的区别以及在android内存处理的作用
- java弱引用(WeakReference)和SoftReference的区别以及在android内存处理的作用
- java弱引用(WeakReference)和SoftReference的区别以及在android内存处理的作用
- java弱引用(WeakReference)和SoftReference的区别以及在android内存处理的作用
- java弱引用(WeakReference)和SoftReference的区别以及在android内存处理的作用
- java弱引用(WeakReference)和SoftReference的区别
- Java引用之WeakReference和SoftReference
- 强引用(New)、软引用(SoftReference )、弱引用(WeakReference )、虚引用(PhantomReference)
- java中虚引用PhantomReference与弱引用WeakReference(软引用SoftReference)的差别
- java强引用(StrongReference),软引用(SoftReference),弱引用(WeakReference),PhantomRefrence(虚引用)的区别
- Android 内存溢出解决方案(OOM) 整理总结 (软引用(SoftReference)、虚引用(PhantomRefrence)、弱引用(WeakReference),)
- 进程简介(笔记二)
- MyBatis数据库连接出现Communications link failure现象的解决办法(dbcp2连接池)
- 指针与数组运算
- CentOS下yum安装tomcat
- ubuntu14.04+k8s1.1+docker1.9集群部署
- 弱引用和软引用WeakReference,SoftReference,最简讲解,以及一个应用场景
- 堆排序的Java实现(用最大堆实现从小到大排序)
- php析构方法
- 上机练习题——接口
- HttpServletRequest.getInputStream可读取多次解决方案之一,使用HttpServletRequestWrapper
- Spring Boot集成JPA的Column注解命名字段无效的问题
- docker集群-----swarm
- 黑客攻防技术宝典+浏览器实战篇.pdf 免费下载
- nginx默认虚拟主机,用户认证,域名重定向,日志,静态文件不记录日志,防盗链,访问控制,php解析