目录
一、java中引用级别有哪些
- 一、java中引用级别有哪些
- 二、强引用
- 三、软引用(java.lang.ref.SoftReferenct)
- 四、弱引用(java.lang.ref.WeakReferenct)
- 五、虚引用(java.lang.ref.PhantomReference)
- 在Java中,引用级别一共有四种,分别为:
- 强引用
- 软引用
- 弱引用
- 虚引用
- 一般程序中的引用,例如 Student student = new Student();
- 如果一个对象具有强引用,那就类似于必不可少的物品,不会被垃圾回收器回收。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不回收这种对象。
- 当堆空间不足时,才会被回收。因此,软引用对象不会引起内存溢出。
1、示例代码如下
2、运行结果如下:
- 当GC的时候,只要发现存在弱引用,无论系统堆空间是否不足,均会将其回收。
1、代码如下:
2、运行结果如下:
- 如果对象持有虚引用,其实与没有引用是一样的。虚引用必须和引用队列在一起使用,它的作用是用于跟踪GC回收过程,所以可以将一些资源释放操作放置在虚引用中执行和记录。
1、代码如下:
2、运行结果如下: