栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

学习JVM之垃圾收集02——简略介绍引用和回收方法区

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学习JVM之垃圾收集02——简略介绍引用和回收方法区

目录 

引用

强引用

软引用

弱引用

虚引用

回收方法区


引用

早期的JDK中,大概是这样描述的:

如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称该reference数据是代表某块内存、某个对象的引用。

这种定义非常正确,但是不太够用。在实际的操作中有这样的情况。

比如:一个对象是要被删除的,但是我内存足够,有点舍不得,万一有用呢,想要留下他。等内存不够了再删也不迟啊。

——很多系统的缓存功能都符合这样的应用场景。

于是乎啊,四个“花里胡哨”的东西诞生了!!

强引用

指在程序代码之中普遍存在的引用赋值,

即类似 Student a = new Student();  这种引用关系。

只要有我强引用在,没有什么垃圾收集能动你分毫。

软引用

指有用,但非必须的对象。

只被软引用关联着的对象,在系统将要发生内存溢出异常前,会把这些对象列进回收范围之中进行第二次回收,如果这次回收还没有足的内存, 才会抛出内存溢出异常。

弱引用

也是描述非必须的对象。但是会被垃圾收集带走,无论内存是否够。

虚引用

也被称为“幽灵引用” 或者 “幻影引用”。

这个关系非常虚无,对对象的生存时间没有影响、也不能通过虚引用获取对象实例。

唯一的目的就是,在对象被回收时能收到一个系统通知。

说白了,就是某个对象被收走的时候能有个动静。

回收方法区

关于方法区的概念,如果不了解可以看最后的链接。

根据方法区的概念来看,回收其内部存储的东西是收益不大的。实际上也是这样。

《Java虚拟机规范》中就提到过可以不要求虚拟机在方法区中实现垃圾收集。有的垃圾收集器也确实没有这部分的设计。

方法区内的垃圾主要就是废弃的常量和不再使用的类型。

这一部分呢,就简单说这些啦。

学习JVM之内存管理 03——JVM的方法区、元空间_早起之王的博客-CSDN博客方法区是什么?元空间存了什么?https://blog.csdn.net/qq_57014350/article/details/122590237?spm=1001.2014.3001.5501

早睡早起,注意身体。早起之王祝你风生水起!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/713461.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号