JAVA强引用介绍

引用架构图

在这里插入图片描述

强引用(默认支持模式)

当内存不足,JVM开始垃圾回收,对应强引用的对象,就算是出现了OOM也不会对该对象进行回收
强引用是我们最常见的普通对象引用,只要还有强引用指向一个对象,就能表明对象还“活着”,垃圾收集器不会碰这种对象,在JAVA中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会用到,JVM也不会回收。因此强引用是造成java内存泄漏的主要原因之一。
对于一个普通对象,如果没有其他的引用关系,只要超过了引用的作用域或者显式地将相应(强)引用赋值为null,一般认为就是可以被垃圾收集的了(具体需要看垃圾收集策略).

代码演示

public class StrongReferenceDemo {
    public static void main(String[] args) {
        Object obj1 = new Object();//这样定义的默认就是强引用
        Object obj2 = obj1;//引用赋值
        obj1 = null;
        System.gc();//启动GC
        System.out.println(obj2);//obj2是强引用不会被垃圾回收
    }
}

运行结果:
在这里插入图片描述

发布了30 篇原创文章 · 获赞 1 · 访问量 1525
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览