热门课程

免费试听

上课方式

开班时间

当前位置: 首页 -   文章 -   新闻动态 -   正文

Java中垃圾回收机制

知了堂姐
2024-07-08 17:22:16
0

     “猪能吃的是湿垃圾,猪不吃的是干垃圾,猪吃了会死的是有害垃圾,卖了能买猪的是干垃圾 ......”最近,上海人民都快被垃圾分类弄疯了。那作为程序员的你,知道在Java中是怎么垃圾回收的吗?

 

什么是垃圾回收?

 

      说到垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来。在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。顾名思义,垃圾回收就是释放垃圾占用的空间。

 

       自动垃圾回收是一种在堆内存中找出哪些对象在被使用,还有哪些对象没被使用,并且将后者删掉的机制。

 

       所谓使用中的对象(已引用对象),指的是程序中有指针指向的对象;而未使用中的对象(未引用对象),则没有被任何指针给指向,因此占用的内存也可以被回收掉。

 

第一步:找出垃圾


      垃圾回收器此时会找出哪些内存在使用中,还有哪些不是。

 


      上图中,蓝色表示已引用对象,橙色表示未引用对象。垃圾回收器要检查完所有的对象,才能知道哪些有被引用,哪些没。如果系统里所有的对象都要检查,那这一步可能会相当耗时间。

 

第二步:清除垃圾

 

      这一步会删掉标记出的未引用对象。内存分配器会保留指向可用内存的引用,以供分配新对象。

 

第三步:压缩

 

      为了提升性能,删除了未引用对象后,还可以将剩下的已引用对象放在一起(压缩),这样就能更简单快捷地分配新对象了。

版权声明:本文来源于网络,由知了堂搜集整理,仅供大家学习IT编程时参考


大家都在看

网络信息安全工程师

2024-07-08 浏览次数:0

js算法与结构面试过程遇到问题及答案

2024-07-08 浏览次数:0

@信安专业大学生:关于报考NISP二级的紧急通知

2024-07-08 浏览次数:0

UI全链路设计——大厂作品集相关问题

2024-07-08 浏览次数:0

2020秋招季IT岗位求职简历怎么写才能被HR“...

2024-07-08 浏览次数:0

关于我们

2024-07-08 浏览次数:0
最新资讯