news 2026/7/8 6:58:59

实习面试题-Java 虚拟机面试题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
实习面试题-Java 虚拟机面试题

1.Java 中有哪些垃圾回收算法?

回答重点

关于垃圾回收算法,其实不用死记硬背,它们本质上就是处理内存碎片的几种不同策略

你就想象成我们在打扫房间,主要有这么三种流派:

1)标记-清除算法(Mark-Sweep),这是最基础的流派:

它的逻辑很简单:先遍历一遍,把有用的东西打个勾(标记),然后把没打勾的垃圾直接扔掉(清除)。 但这有个大坑,就是内存碎片

你想啊,你把垃圾扔了,空出来的地方东一块西一块的,像蜂窝煤一样。下次想放个大件家具(大对象),明明总空间够,但就是找不到一块完整的地儿,这就很尴尬。

![images](https://i-blog.csdnimg.cn/img_convert/148c79792957c11ce96c380ed737ad17.png) 100%

为了解决碎片问题,就有了复制算法

2)复制算法(Copying)

它把内存一分为二,平时只用一半。回收的时候,把活着的对象全部复制到另一半去,整整齐齐排好,然后把原来那一半直接清空。

好处是快,而且绝对没有碎片。坏处也很明显,太浪费空间了,得空着一半地盘不能用。

![images](https://i-blog.csdnimg.cn/img_convert/1e17702bd7f96e6b1969891467352d24.png) 100%

不过,在 Java 的新生代里,因为绝大部分对象都是

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 2:02:25

DTIIA 4.7、拉紧装置

拉紧力和拉紧行程根据计算确定。(前面小节中)拉紧装置类型的选择属于输送机侧型设计问题,按2.3.6小节所定原则确定。本系列两种重锤拉紧装置均配设了重锤箱和重锤块两种重锤,供设计者选用。(重锤块不怎么使用了&#x…

作者头像 李华
网站建设 2026/7/6 22:06:59

跨平台部署实战指南:构建ARM架构与Docker镜像的完美融合方案

跨平台部署实战指南:构建ARM架构与Docker镜像的完美融合方案 【免费下载链接】OpenFLOW 项目地址: https://gitcode.com/gh_mirrors/openflow1/OpenFLOW 在现代软件开发中,您是否经常面临这样的困境:精心构建的应用在开发者的Intel M…

作者头像 李华
网站建设 2026/7/6 23:37:15

实体关系图设计终极指南:erd-editor 完整教程

实体关系图设计终极指南:erd-editor 完整教程 【免费下载链接】erd-editor Entity-Relationship Diagram Editor 项目地址: https://gitcode.com/gh_mirrors/er/erd-editor 在现代软件开发中,数据库设计是项目成功的关键因素。无论您是构建电商平…

作者头像 李华
网站建设 2026/7/7 7:47:45

TIA博途虚拟机:三版本一体化自动化工程解决方案

TIA博途虚拟机:三版本一体化自动化工程解决方案 【免费下载链接】TIA博途虚拟机文件V17V16V15.1可直接使用 本仓库提供了一个TIA博途虚拟机文件,包含TIA Portal V17、V16和V15.1版本,用户可以直接使用这些虚拟机进行开发和测试。虚拟机文件已…

作者头像 李华
网站建设 2026/7/6 18:46:00

17、Puppet 4新特性与Hiera数据分离实践

Puppet 4新特性与Hiera数据分离实践 1. Puppet 4新特性 1.1 新风格与Ruby DSL的变化 Puppet 4引入了新的风格,例如: class syslog_ng {... } include syslog_ng同时,Puppet 4不再支持Ruby DSL。在之前,有人会将.rb文件作为清单放在模块中,这些.rb文件包含Ruby代码,主…

作者头像 李华