博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java——强引用、软引用、弱引用、虚引用区别
阅读量:5273 次
发布时间:2019-06-14

本文共 495 字,大约阅读时间需要 1 分钟。

我自己的理解:

 

其实 ,这个就是针对java的对象,每个对象都在堆上都占有自己的内存空间

然后,关键是垃圾回收机制什么时候回收这个对象。(为什么要被回收,是因为每个应用程序的内存有限)

分情况考虑:

1.强引用:

当这个对象被强引用时,就算出现空间内存不足,也要出现oom的情况

2.软引用:

当这个对象被软引用时,一般垃圾回收器不会管它,但是出现空间内存不足,就要被回收。

3.弱引用:

当这个对象被弱引用时,一般还没有出现空间内存不足的情况时,如果垃圾回收器线程扫描到它,就会被回收。

4.虚引用:

当这个对象仅仅被虚引用时,该对象可以在任何时候被垃圾回收。

虚引用主要是用来跟踪对象被垃圾回收的活动。

虚引用与软引用和弱引用的一个区别在于:虚引用必须和引用队列(ReferenceQueue)联合使用。

当一个对象被回收时,如果发现还有一个虚引用,在回收该对象前,就要把这个虚引用加入到与之相关的引用队列中。

程序通过了解该引用队列,可以判断该对象是否被回收。相当于日志追踪。

 

转载于:https://www.cnblogs.com/gengen1990/p/6568409.html

你可能感兴趣的文章
bugku 变量
查看>>
Python 环境傻瓜式搭建 :Anaconda概述
查看>>
数据库01 /Mysql初识以及基本命令操作
查看>>
数据库02 /MySQL基础数据类型以及多表之间建立联系
查看>>
Python并发编程04/多线程
查看>>
CF461B Appleman and Tree
查看>>
CF219D Choosing Capital for Treeland
查看>>
杂七杂八的小笔记本
查看>>
51Nod1353 树
查看>>
CF1215E Marbles
查看>>
BZOJ2339 HNOI2011卡农(动态规划+组合数学)
查看>>
octave基本操作
查看>>
axure学习点
查看>>
WPF文本框只允许输入数字[转]
查看>>
dom4j 通用解析器,解析成List<Map<String,Object>>
查看>>
第一个项目--用bootstrap实现美工设计的首页
查看>>
使用XML传递数据
查看>>
TYVJ.1864.[Poetize I]守卫者的挑战(概率DP)
查看>>
0925 韩顺平java视频
查看>>
iOS-程序启动原理和UIApplication
查看>>