JAVA学习第1天 JAVA中的几种引用方式

引用描述

JAVA中处处存在引用,这直接影响到JAVA的垃圾回收机制的定义和实现,在JAVA中,主要存在四种引用方式,强引用、软引用、弱引用以及虚引用,下面进行介绍。

强引用

强引用的理解非常简单,在程序代码中普遍存在,如:

Person p = new Person();

其中变量p就是一个引用变量,指向Person()实例,这一类的引用,只要强引用还存在,JVM的垃圾回收器就不会回收掉被引用的对象。在实际的编程中,可以进行复制NULL操作进行可回收设置,但真正的回收时机还取决与JVM的回收机制。

软引用

软引用的引用强度弱于强引用,主要用来引用或者描述一些还有用但是不是必须的对象,如:一些图片或者数据的缓存,采用软引用。JVM的垃圾回收器会在内存不足OOM的情况出现之前进行GC操作,避免OOM,但是在内存充足的情况下,这类对象不会被回收。

弱引用

弱引用的引用强度弱于软引用,主要用来引用的一些不是必须的对象(这种对象可能没有用了,但可能有用),如:一些缓存的数据等。这一类引用的对象会在每一次JVM垃圾回收的时候被回收,不管该对象是否有用,最终都会被GC掉。

虚引用

虚引用的引用强度弱于弱引用,是最弱的引用,也被称为幽灵引用或者幻影引用。从表象上看,虚引用并不会对所引用的对象造成任何的影响,它存在的最主要的目的之一就是所引用的对象在被垃圾回收器回收的时候收到一个系统的通知。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值