|
|
|
@ -3979,9 +3979,7 @@ Exception in thread "main": java.lang.OutOfMemoryError: <reason> <stack trace> (
|
|
|
|
|
|
|
|
|
|
### 堆内存
|
|
|
|
|
|
|
|
|
|
堆内存(JAVA Heap)。是被线程共享的一块内存区域,创建的对象和数组都保存在 Java 堆内存中,也是垃圾收集器进行
|
|
|
|
|
|
|
|
|
|
垃圾收集的最重要的内存区域。由于现代 VM 采用**分代收集算法**, 因此 Java 堆从 GC 的角度还可以细分为: **新生代**(Eden 区、From Survivor 区和 To Survivor 区)和老年代。
|
|
|
|
|
堆内存(JAVA Heap)。是被线程共享的一块内存区域,创建的对象和数组都保存在 Java 堆内存中,也是垃圾收集器进行垃圾收集的最重要的内存区域。由于现代 VM 采用**分代收集算法**, 因此 Java 堆从 GC 的角度还可以细分为: **新生代**(Eden区、From Survivor 区和 To Survivor 区)和老年代。
|
|
|
|
|
|
|
|
|
|
- 线程共享
|
|
|
|
|
- 主要用于存储JAVA实例或对象
|
|
|
|
@ -4754,7 +4752,7 @@ Parallel Old 收集器是 Parallel Scavenge 的老年代版本,追求 CPU 吞
|
|
|
|
|
|
|
|
|
|
#### G1收集器
|
|
|
|
|
|
|
|
|
|
**G1垃圾回收器** 应用于大的堆内存空间。它将堆内存空间划分为不同的区域,对各个区域并行地做回收工作。G1在回收内存空间后还立即堆空闲空间做整合工作以减少碎片。CMS却是在全部停止(stop the world,STW)时执行内存整合工作。对于不同的区域G1根据垃圾的数量决定优先级。使用 `-XX:UseG1GCJVM` 参数来开启使用G1垃圾回收器。
|
|
|
|
|
**G1垃圾回收器** 应用于大的堆内存空间。它将堆内存空间划分为不同的区域,对各个区域并行地做回收工作。G1在回收内存空间后还立即对空闲空间做整合工作以减少碎片。CMS却是在全部停止(stop the world,STW)时执行内存整合工作。对于不同的区域G1根据垃圾的数量决定优先级。使用 `-XX:UseG1GCJVM` 参数来开启使用G1垃圾回收器。
|
|
|
|
|
|
|
|
|
|
![G1收集器](images/JAVA/G1收集器.jpg)
|
|
|
|
|
|
|
|
|
|