java中引用级别的理解及代码示例
Posted 小志的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中引用级别的理解及代码示例相关的知识,希望对你有一定的参考价值。
目录
一、java中引用级别有哪些
- 在Java中,引用级别一共有四种,分别为:
- 强引用
- 软引用
- 弱引用
- 虚引用
二、强引用
- 一般程序中的引用,例如 Student student = new Student();
- 如果一个对象具有强引用,那就类似于必不可少的物品,不会被垃圾回收器回收。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不回收这种对象。
三、软引用(java.lang.ref.SoftReferenct)
- 当堆空间不足时,才会被回收。因此,软引用对象不会引起内存溢出。
1、示例代码如下
2、运行结果如下:
四、弱引用(java.lang.ref.WeakReferenct)
- 当GC的时候,只要发现存在弱引用,无论系统堆空间是否不足,均会将其回收。
1、代码如下:
2、运行结果如下:
五、虚引用(java.lang.ref.PhantomReference)
- 如果对象持有虚引用,其实与没有引用是一样的。虚引用必须和引用队列在一起使用,它的作用是用于跟踪GC回收过程,所以可以将一些资源释放操作放置在虚引用中执行和记录。
1、代码如下:
2、运行结果如下:
以上是关于java中引用级别的理解及代码示例的主要内容,如果未能解决你的问题,请参考以下文章
ref:关于JAVA中一些安全漏洞示例说明及如何规避方法代码示例总结分享
Java并发多线程编程——原子类AtomicInteger的ABA问题及原子更新引用