Rus*_*lan 2 java memory jvm heap-memory metaspace
我已经阅读了很多有关Java内存区域的信息,但看起来只是一团糟。主要是由于引入了新MetaSpace区域而不是PermGenJava8。现在有问题:
heapjava8 +中包括哪些区域?static的方法和变量存储之前java8和java8 +?MetaSpace除了类元数据信息外,是否存储任何其他内容?JVM?谢谢您的回答。
- 内存区域的结构是否取决于JVM的实现?
绝对。PermGen或Metaspace只是特定JVM的实现细节。以下答案是有关HotSpot JVM(Java SE虚拟机的参考实现)的。
- java8 +中堆包括哪些区域?
由于上述原因,说“在JDK 8中”而不是“在Java 8中”会更正确。
Java Heap的结构取决于所选的GC算法。例如,使用并行GC和CMS,堆分为老一代和年轻一代,后者由伊甸园和两个幸存者空间组成。
G1堆分为相同大小的区域。Epsilon GC堆是单个整体区域。等等。
- 静态方法和变量存储在java8和java8 +之前的位置?
方法(静态和非静态)都驻留在JDK 8中的元空间中,或者驻留在JDK 8之前的PermGen中。在元空间中。
- 除了类元数据信息外,MetaSpace是否存储任何其他内容?
以下各项存储在Metaspace中:
所有这些都可以视为“类元数据”。