JVM 学习整理
JVM
基本介绍
概念
JVM的全称 Java Virtual Machine,JVM负责把java文件进行编译并且根据不同版本最终解释平台可以执行的机器指令,交给系统执行。
JVM也是有不同的版本,有很多不同的实现Sun/OracleJDK和OpenJDK中的默认实现是HotSpot虚拟机。
java程序过程
JVM内存区域
Java虚拟机执行java程序的的时候会对内存区域进行划分数据区域,为了提高程序执行效率,JVM虚拟机对程序解释执行的时候会对类的属性进行分区域保存(静态常量、类、程序运行时变量和字符串对象)等的内存进行分配。
虚拟机栈:执行自定的方法。
本地方法栈:执行本地方法。
堆/方法区:不同的版本也是有所差异。
- 1.6:有永久代,静态变量放在永久代。
- 1.7:有永久代,但是字符串、静态变量放在堆上减少永久代使用。
- 1.8:无永久代,运行时常量池、类常量池,都保存在元数据区(元空间),但是字符串常量池仍在堆上。