JVM
JVM就是Java虚拟机的缩写,Java屏蔽了很多操作系统平台的相关信息,只需要编译生成JVM认识的.class文件即字节码文件,然后JVM解释成目标的机器码进行运行,就可以实现Java的高可移植性。
JDK、JRE、JVM的关系
JDK是程序员常使用的开发包,用于编写和调试Java程序,JRE为Java运行环境,Java程序都需要在JRE运行,JVM负责将.class字节码文件翻译成特定的机器码文件进行运行。
JVM的组成部分
JVM由方法区、Java栈、本地方法栈、堆以及程序计数器组成。
方法区以及堆是线程共享区域,也是垃圾回收的主要工作区域,堆里面存放着对象实例。
本地方法栈里面存放着native方法,当execution engine执行的时候加载本地方法库。
Java栈中存放着类变量、实例方法等,它的生命周期跟线程一样,线程创建Java栈创建,线程消亡Java栈释放。Java栈不需要垃圾回收,因为线程销毁后,栈空间就自动释放了。
程序计数器就是一个指针,它指向着所要执行的下一条指令。
垃圾回收机制和回收算法下次更新。