1 JVM组成结构?
2 JVM运行时数据区域?
3 什么是程序计数器?
4 什么是虚拟机栈?
5 什么是本地方法栈?
6 什么是堆?
7 什么是方法区?
8 什么是运行时常量池?
在 JDK1.7之前,HotSpot 使用永久代实现方法区;HotSpot 使用 GC 分代实现方法区带来了很大便利;
从 JDK1.7 开始 HotSpot 开始移除永久代。其中符号引用(Symbols)被移动到 Native Heap中,字符串常量和类引用被移动到 Java Heap中。
在 JDK1.8 中,永久代已完全被元空间(Meatspace)所取代。元空间的本质和永久代类似,都是对JVM规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元空间并不在虚拟机中,而是使用本地内存。因此,默认情况下,元空间的大小仅受本地内存限制。