1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-08-01 16:28:03 +08:00

Update Java内存区域.md

This commit is contained in:
Snailclimb 2019-11-29 10:09:21 +08:00
parent d82f399393
commit c458ea06de

View File

@ -175,6 +175,12 @@ JDK 8 版本之后方法区HotSpot 的永久代被彻底移除了JDK1.7
> >
> >
堆这里最容易出现的就是 OutOfMemoryError 异常,并且出现这种异常之后的表现形式还会有几种,比如:
1. **`OutOfMemoryError: GC Overhead Limit Exceeded`** 当JVM花太多时间执行垃圾回收并且只能回收很少的堆空间时就会发生此错误。
2. **`java.lang.OutOfMemoryError: Java heap space`** :假如在创建新的对象时, 堆内存中的空间不足以存放新创建的对象, 就会引发`java.lang.OutOfMemoryError: Java heap space` 错误。(和本机物理内存无关,和你配置的对内存大小有关!)
3. ......
### 2.5 方法区 ### 2.5 方法区
方法区与 Java 堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。虽然 **Java 虚拟机规范把方法区描述为堆的一个逻辑部分**,但是它却有一个别名叫做 **Non-Heap非堆**,目的应该是与 Java 堆区分开来。 方法区与 Java 堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。虽然 **Java 虚拟机规范把方法区描述为堆的一个逻辑部分**,但是它却有一个别名叫做 **Non-Heap非堆**,目的应该是与 Java 堆区分开来。