Java对内存空间的分配与回收机制

举报
zhulin1028 发表于 2021/10/30 00:00:16 2021/10/30
【摘要】 目录 1、什么叫垃圾回收机制? 2、java的垃圾回收有什么特点? 3、垃圾回收器什么时候会运行? 4、什么样的对象符合垃圾回收条件? 5、垃圾回收器是怎样工作的? 6、一个java程序能够耗尽内存吗? 垃圾回收机制: 1、什么叫垃圾回收机制? 垃圾回收是一种动态存储管理技术,它自动地释放不再被程序引用的对象,...

目录

1、什么叫垃圾回收机制?

2、java的垃圾回收有什么特点?

3、垃圾回收器什么时候会运行?

4、什么样的对象符合垃圾回收条件?

5、垃圾回收器是怎样工作的?

6、一个java程序能够耗尽内存吗?


垃圾回收机制:

1、什么叫垃圾回收机制?

垃圾回收是一种动态存储管理技术,它自动地释放不再被程序引用的对象,按照特定的垃圾收集算法来实现资源自动回收的功能。当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用,以免造成内存泄露。

2、java的垃圾回收有什么特点?

JAVA语言不允许程序员直接控制内存空间的使用。内存空间的分配和回收都是由JRE负责在后台自动进行的,尤其是无用内存空间的回收操作(garbage collection,也称垃圾回收),只能由运行环境提供的一个超级线程进行监测和控制。

3、垃圾回收器什么时候会运行?

一般是在CPU空闲或空间不足时自动进行垃圾回收,而程序员无法精确控制垃圾回收的时机和顺序等。

4、什么样的对象符合垃圾回收条件?

当没有任何获得线程能访问一个对象时,该对象就符合垃圾回收条件。

5、垃圾回收器是怎样工作的?

垃圾回收器如发现一个对象不能被任何活线程访问时,他将认为该对象符合删除条件,就将其加入回收队列,但不是立即销毁对象,何时销毁并释放内存是无法预知的。垃圾回收不能强制执行,然而Java提供了一些方法(如:System.gc()方法),允许你请求JVM执行垃圾回收,而不是要求,虚拟机会尽其所能满足请求,但是不能保证JVM从内存中删除所有不用的对象。

6、一个java程序能够耗尽内存吗?

可以。垃圾收集系统尝试在对象不被使用时把他们从内存中删除。然而,如果保持太多活的对象,系统则可能会耗尽内存。垃圾回收器不能保证有足够的内存,只能保证可用内存尽可能的得到高效的管理。

文章来源: zhulin1028.blog.csdn.net,作者:zhulin1028,版权归原作者所有,如需转载,请联系作者。

原文链接:zhulin1028.blog.csdn.net/article/details/120894794

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。