JAVA对象引用方式

JAVA中我们可以使用的对象引用方式有四种:

1)强引用:此引用引用的对象,生命力最强。(对象不会被GC)
2)软引用:此引用引用的对象,在内存不足时可能会被GC。
3)弱引用:此引用引用的对象,在GC执行时可能直接会被销毁(即便是内存充足)。
4)虚引用:用的最少,类似没有引用,主要用于记录对象的销毁。
**说明:**软引用和弱引用通常会应用在一些缓存产品的设计中。

private static void doMethod01() {
		//1.强引用
    	//Container c1=new Container(100);//c1就是强引用
    	//c1=null;//此时c1指向的Container对象不可达(也就是说JVM访问不到了)
    	//2.软引用
    	//SoftReference<Container> c2=new SoftReference<Container>(new Container(20));
    	//Container cc=c2.get();//这种写发是又将软引用转换为了强引用。不推荐
    	//System.out.println(c2.get());//通过软引用获取和操作对象
    	//3.弱引用
    	WeakReference<Container> c3=new WeakReference<Container>(new Container(100));
    	System.out.println(c3.get());
    	
    	//手动GC
    	System.gc();//GC启动以后,GC系统会对内存中的对象进行可达性分析。访问不到则进行标记。
    	//自动GC(通过JVM参数进行分析)
//    	List<byte[]> list=new ArrayList<>();
//    	for(int i=0;i<100000;i++) {
//    		list.add(new byte[1024*1024]);
//    	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值