Skip to content

Commit 2abe60c

Browse files
committed
Update Java内存区域.md
1 parent 4eeaf4d commit 2abe60c

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

docs/java/jvm/Java内存区域.md

+2
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ Java 方法有两种返回方式:
133133

134134
Java 虚拟机所管理的内存中最大的一块,Java 堆是所有线程共享的一块内存区域,在虚拟机启动时创建。**此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例以及数组都在这里分配内存。**
135135

136+
**Java世界中“几乎”所有的对象都在堆中分配,但是,随着JIT编译期的发展与逃逸分析技术逐渐成熟,栈上分配、标量替换优化技术将会导致一些微妙的变化,所有的对象都分配到堆上也渐渐变得不那么“绝对”了。从jdk 1.7开始已经默认开启逃逸分析,如果某些方法中的对象引用没有被返回或者未被外面使用(也就是未逃逸出去),那么对象可以直接在栈上分配内存。**
137+
136138
Java 堆是垃圾收集器管理的主要区域,因此也被称作**GC 堆(Garbage Collected Heap)**.从垃圾回收的角度,由于现在收集器基本都采用分代垃圾收集算法,所以 Java 堆还可以细分为:新生代和老年代:再细致一点有:Eden 空间、From Survivor、To Survivor 空间等。**进一步划分的目的是更好地回收内存,或者更快地分配内存。**
137139

138140
在 JDK 7 版本及JDK 7 版本之前,堆内存被通常被分为下面三部分:

0 commit comments

Comments
 (0)