一、请谈谈你对JVM的理解?Java8的虚拟机有什么更新?
JVM是Java虚拟机的意思。它是建立在操作系统之上的,由类加载器子系统、本地方法栈、Java栈、程序计数器、方法区、堆、本地方法库、本地方法接口、执行引擎组成。
(1)类加载器子系统用于把要执行的java文件加载进内存中的方法区;
(2)本地方法栈是类中一段特殊的标记,用native标记,用于加载操作系统底层的资源;
(3)Java栈中存储的是8种基本数据类型+引用类型+实例方法;
(4)程序计数器是线程私有的,其实就是一个指针,里边记录了A方法执行完毕后,下一个要执行的方法是哪一个;
(5)方法区里边主要存储由类加载子系统加载进来的Class文件;
(6)堆中存储的主要实例对象;
(7)执行引擎主要用于执行java代码;
相较于Java7,Java8在GC方面主要是堆内存的永久区变为了元空间。