《Java开发超级工具集》读书笔记

本文介绍了Java内存管理中的对象分配与垃圾回收机制。新对象首先在Eden Space创建,随后转移到Survivor Space,最终进入Tenured Generation。文章详细解释了各内存区域的作用及垃圾回收策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[align=center][img]http://img1.douban.com/lpic/s4135994.jpg[/img][/align]
"工欲善其事必先利其器", 在平时的开发中我们会接触各种工具, 如果没有接触过, 可以看看这本书, 如果某种工具已经很熟练了, 可以看看有什么可以借鉴, 如果平常工作中基本不会用到, 可以直接跳过. 因为大而且全, 所以整本书比较厚, 但是如果要深入可以去看相关的专门的书籍. 这本书可以作为各种开发工具的了解, 入门读物. 最后如果非要给书名加一个限定的话, 我想应该是"开源Java开发超级工具集".

==================我是读书笔记的分割线======================
新对象分成3个不同的区, 第一个区是Eden Space(伊甸园空间), 这是Java虚拟机存放新创建对象的位置(此区域由此得名), 它主要用于保存短期变量, 如方法中的局部变量, 当此空间变得拥挤时, 一个快速轻量垃圾收集进程将对其进行清理并回收任何未被引用的对象, 在伊甸园空间中未被收集的对象将被放入名为Survivor Space(幸存者空间)的第二个区域. 实际上有大小相等的两个幸存者空间, 当第一个幸存者空间装满时, 垃圾收集器收集非存活对象, 并将存活对象复制到第二个幸存者空间, 经过一定复制次数之后, 未被回收的对象将被放到旧对象区域, 此区域也称为终身对象区域(Tenured Generation), 它通常保留供长期对象或者经常使用的缓存对象使用. 此区域通常比其他区域要大得多, 只有特别耗费资源的"标记清除"垃圾收集操作才能从这里回收内存.

在有内存泄露时, 未被回收的对象首先逐步装满幸存者空间, 然后再装满终身对象区域, 当这些更大的空间装满时, 应用程序的运行速度将变慢, 因为经常进行缓慢的全面垃圾收集操作. 过多的垃圾收集活动也是内存泄露或者java虚拟机配置不当的典型标志.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值