本文主要是介绍JVM垃圾处理相关--四种引用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在 JDK 1.2 之后,Java对引用的概念进行了扩充,将引用分为强引用,软引用,弱引用,虚引用四种
四种引用的强度依次减弱。
1.强引用
就是指在程序代码中普遍存在的,类似“Object obj = new Object()”这类的引用,只要强引用还存在,垃圾收集器永远不会回收掉被引用的对象。
2.软引用
是用来描述一下还有用但并非必需的对象。对于软引用关联着的对象,在系统将要发生内存溢出异常之前,将会把这些对象列进回收范围之中进行二次回收。如果这次回收还没有足够的内存,才会抛出内存溢出异常。在JDk 1.2之后,提供了SoftReference类来实现软引用。
3.弱引用
也是用来描述非必须对象的,但是它的强度比弱引用更弱一些,被弱引用关联着的对象只能生存到下一次垃圾回收发生之前。当垃圾收集器工作时,无论当前内存是否足够,都会回收掉只被弱引用关联着的对象。
4.虚引用
他是最弱的一种引用关系。一个对象是否有虚引用的存在,完全不会对其生存时间构成影响,也无法通过虚引用来取得一个对象实例。为一个对象设置虚引用关联的唯一目的就是能在这个对象被收集器回收的时候收到一个系统通知!
这篇关于JVM垃圾处理相关--四种引用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!