分代回收

简介: 分代回收

关于分代回收是这样的

在java8时,堆被分为了两份:新生代和老年代,它们默认空间占用比例是1:2

对于新生代,内部又被分为了三个区域。Eden区,S0区,S1区默认空间占用比例是8:1:1

具体的工作机制是有些情况:

1)当创建一个对象的时候,那么这个对象会被分配在新生代的Eden区。当Eden区要满了时候,触发YoungGC。

2)当进行YoungGC后,此时在Eden区存活的对象被移动到S0区,并且当前对象的年龄会加1,清空Eden区。

3)当再一次触发YoungGC的时候,会把Eden区中存活下来的对象和S0中的对象,移动到S1区中,这些对象的年龄会加1,清空Eden区和S0区。

4)当再一次触发YoungGC的时候,会把Eden区中存活下来的对象和S1中的对象,移动到S0区中,这些对象的年龄会加1,清空Eden区和S1区。

5)对象的年龄达到了某一个限定的值(默认15岁 ),那么这个对象就会进入到老年代中。

当然也有特殊情况,如果进入Eden区的是一个大对象,在触发YoungGC的时候,会直接存放到老年代

当老年代满了之后,触发FullGCFullGC同时回收新生代和老年代,当前只会存在一个FullGC的线程进行执行,其他的线程全部会被挂起。 我们在程序中要尽量避免FullGC的出现。

目录
相关文章
|
3月前
|
存储 监控 算法
垃圾回收器、垃圾回收算法、空间分配担保、JVM调优、GC回收对象的过程
垃圾回收器、垃圾回收算法、空间分配担保、JVM调优、GC回收对象的过程
|
26天前
|
存储 安全 数据安全/隐私保护
旧电脑回收前怎么清除数据
随着技术迭代,处理旧电脑时需确保数据安全清除以防隐私泄露。步骤如下: 1. **备份重要数据**:转移到外部存储或云端。 2. **验证备份完整性**:确保无遗漏。 3. **准备系统安装工具**:如需重装系统。 4. **恢复出厂设置**:删除所有内容和个人设置。 5. **使用数据擦除工具**:如DiskGenius,彻底覆盖数据。 6. **物理销毁硬盘**:针对极度敏感数据。 确保数据安全的同时,还能循环利用旧设备。
|
3月前
|
算法 Java
垃圾收集-垃圾收集算法
垃圾收集-垃圾收集算法
28 0
垃圾收集-垃圾收集算法
|
9月前
|
存储 算法 JavaScript
V8如何进行垃圾回收的
V8如何进行垃圾回收的
26 0
|
11月前
|
存储 算法 Java
一文学会JVM垃圾回收器详解:串行回收,新生代内存管理内存分配
新生代内存管理包含了内存的分配和回收,这与新生代内存布局密切相关。 新生代被划分为3个空间:Eden、From和To空间。 这3个空间的作用如下: 1)Eden:仅用于应用程序对象分配;GC工作线程不会在该空间进行对象分配。 2)From:用于GC工作线程在执行垃圾回收时,在前一轮垃圾回收后活跃对象的存储。在特殊情况下,From空间也可以用于应用程序对象的分配(这是JVM在实现对象分配时的一种优化),但GC工作线程不会在该空间进行对象分配。 3)To:用于在GC工作线程执行垃圾回收时,存储本轮垃圾回收过程中活跃的对象。垃圾回收过程将Eden空间和From空间中的活跃对象放入To空间。
|
算法 小程序 Java
【垃圾回收】原来是这样!我懂了
本文主要介绍 java性能分析 之 垃圾收集
143 0
|
算法 Java UED
JVM - 再聊GC垃圾收集算法及垃圾收集器
JVM - 再聊GC垃圾收集算法及垃圾收集器
91 0
|
存储 前端开发 算法
V8 如何进行垃圾回收?
V8 如何进行垃圾回收?
87 0
|
算法 Java
详解gc(垃圾回收)机制六:分代垃圾回收
详解gc(垃圾回收)机制六:分代垃圾回收
190 0
详解gc(垃圾回收)机制六:分代垃圾回收
|
算法 Java
Jvm的垃圾回收分代回收?CMS 与 G1的区别?
Jvm的垃圾回收分代回收?CMS 与 G1的区别?
191 0
Jvm的垃圾回收分代回收?CMS 与 G1的区别?