java四种引用

来源:互联网 发布:conerstone for mac 编辑:程序博客网 时间:2024/06/04 18:19

四种引用:

    强引用,软引用,弱引用,虚引用,除强引用外,其他都可以在java.lang.ref包中找到,其中FinalReference实现finalize()方法

这里写图片描述

强引用

    强引用:简单来说就是用new 生成的对象,只要它有有一个引用,就不会被回收如:  String str = new String("强引用");

软引用

软引用:一个对象持有一个软引用时,当堆空间不足时,会被回收,用java.lang.ref.SoftReference实现

例子:https://github.com/Ericjeff/JVM/blob/master/SoftRef.java
这里写图片描述

弱引用

弱引用:但发生gc时就会被回收,使用java.lang.ref.WeakReference实现

例子代码:https://github.com/Ericjeff/JVM/blob/master/WeakRef.java
这里写图片描述

虚引用

    虚引用:几乎没有引用,通过get()获取强引用,总会失败,必须和引用队列儿一起使用    当垃圾回收器回收对象时,发现它有一个虚引用,就会在对象回收后将,这个虚引用加入引用队列里

代码例子:https://github.com/Ericjeff/JVM/blob/master/PhantomRef.java

原创粉丝点击