Java中被你忽视的四种引用
来源:互联网 发布:电脑软件编程学校 编辑:程序博客网 时间:2024/05/21 08:57
正文开始前,有必要先了解下Java内存分配与回收,请见我的相关博文。
——————————————————————————————————
Java的数据类型分为两类:基本数据类型、引用数据类型。
基本数据类型的值存储在栈内存中,而引用数据类型需要开辟两块存储空间,一块在堆内存中,用于存储该类型的对象;另一块在栈内存中,用于存储堆内存中该对象的引用。
其中引用类型变量分为四类:
1)强引用
最常用的引用形式。把一个对象赋给一个引用类型变量,则为强引用。
只要一个引用是强引用,则垃圾回收器永远都无法回收这个对象的内存空间,除非JVM终止。
2)软引用
当内存资源充足的时候,垃圾回收器不会回收软引用对应的对象的内存空间;但当内存资源紧张时,软引用所对应的对象就会被垃圾回收器回收。
//创建一个Person类型的软引用SoftReference<Person> sr = new SoftReference<Person>(new Person());
3)弱引用
不管JVM内存资源是否紧张,只要垃圾回收器运行,弱引用所对应的对象就会被释放。
4)虚引用
虚引用等于没有引用,无法通过虚引用访问其对应的对象。
软引用和弱引用在其对象被回收之后,这些引用会被添加到引用队列中去;而虚引用在其对象被回收之前,虚引用就被添加到引用队列中去了。因此虚引用可以在其对象被释放之前进行一些操作。
虚引用和引用队列绑定的方法:
//创建引用队列ReferenceQueue<String> queue = new ReferenceQueue<String>();//创建虚引用,并绑定引用队列PhantomReference<String> str = new PhantomReference<String>("啦啦啦",queue);
1 0
- Java中被你忽视的四种引用
- java中容易被忽视的基本概念
- java中存在的四种引用
- Java的四中引用
- Java中,四种引用
- 内存优化-java四种引用,让你能更好的构建你的项目
- Java 中对象的引用的四种级别
- java四中引用
- Java的四种引用
- Java的四种引用
- Java的四种引用
- java的四种引用
- JAVA的四种引用
- Java的四种引用
- java的四种引用
- java的四种引用
- java的四种引用
- Java的四种引用
- sass笔记之开始
- mysql 5.5中的半同步复制
- 新生项目总结之---组织管理与文档的书写
- 容器配置器(allocator)(二)
- Base64 加密之中文乱码
- Java中被你忽视的四种引用
- 关于设置浮动改变行内元素display属性的问题
- sass插值
- 傻瓜学算法系列之排序——4.归并排序
- 【Manthan, Codefest 16C】【DP SET-MAP 字典树哈希法】Spy Syndrome 2 字符串是否由字典库单词反转加密而成
- angularjs验证学习,问题及思考篇(angularjs validation)
- java反射 之Class类
- LeetCode题解:Word Pattern
- sass数据类型