diff --git a/docs/notes/Java 虚拟机.md b/docs/notes/Java 虚拟机.md index a6b39e64..56db4110 100644 --- a/docs/notes/Java 虚拟机.md +++ b/docs/notes/Java 虚拟机.md @@ -88,6 +88,8 @@ java -Xms1M -Xmx2M HackTheJava HotSpot 虚拟机把它当成永久代来进行垃圾回收。但很难确定永久代的大小,因为它受到很多因素影响,并且每次 Full GC 之后永久代的大小都会改变,所以经常会抛出 OutOfMemoryError 异常。为了更容易管理方法区,从 JDK 1.8 开始,移除永久代,并把方法区移至元空间,它位于本地内存中,而不是虚拟机内存中。 +方法区是一个 JVM 规范,永久代与元空间都是其一种实现方式。在 JDK 1.8 之后,原来永久代的数据被分到了堆和元空间中。元空间存储类的元信息,静态变量和常量池等放入堆中。 + ## 运行时常量池 运行时常量池是方法区的一部分。 @@ -224,8 +226,11 @@ obj = null;