File tree 1 file changed +2
-2
lines changed
1 file changed +2
-2
lines changed Original file line number Diff line number Diff line change @@ -175,15 +175,15 @@ JDK 1.8 的时候,方法区(HotSpot 的永久代)被彻底移除了(JDK1
175
175
176
176
#### 2.5.3 为什么要将永久代 (PermGen) 替换为元空间 (MetaSpace) 呢?
177
177
178
- 整个永久代有一个 JVM 本身设置固定大小上线 ,无法进行调整,而元空间使用的是直接内存,受本机可用内存的限制,并且永远不会得到 java.lang.OutOfMemoryError。你可以使用 ` -XX:MaxMetaspaceSize ` 标志设置最大元空间大小,默认值为 unlimited,这意味着它只受系统内存的限制。` -XX:MetaspaceSize ` 调整标志定义元空间的初始大小如果未指定此标志,则 Metaspace 将根据运行时的应用程序需求动态地重新调整大小。
178
+ 整个永久代有一个 JVM 本身设置固定大小上限 ,无法进行调整,而元空间使用的是直接内存,受本机可用内存的限制,并且永远不会得到 java.lang.OutOfMemoryError。你可以使用 ` -XX:MaxMetaspaceSize ` 标志设置最大元空间大小,默认值为 unlimited,这意味着它只受系统内存的限制。` -XX:MetaspaceSize ` 调整标志定义元空间的初始大小如果未指定此标志,则 Metaspace 将根据运行时的应用程序需求动态地重新调整大小。
179
179
180
180
当然这只是其中一个原因,还有很多底层的原因,这里就不提了。
181
181
182
182
### 2.6 运行时常量池
183
183
184
184
运行时常量池是方法区的一部分。Class 文件中除了有类的版本、字段、方法、接口等描述信息外,还有常量池信息(用于存放编译期生成的各种字面量和符号引用)
185
185
186
- 既然运行时常量池时方法区的一部分 ,自然受到方法区内存的限制,当常量池无法再申请到内存时会抛出 OutOfMemoryError 异常。
186
+ 既然运行时常量池是方法区的一部分 ,自然受到方法区内存的限制,当常量池无法再申请到内存时会抛出 OutOfMemoryError 异常。
187
187
188
188
** JDK1.7 及之后版本的 JVM 已经将运行时常量池从方法区中移了出来,在 Java 堆(Heap)中开辟了一块区域存放运行时常量池。**
189
189
You can’t perform that action at this time.
0 commit comments