JVM 学习整理


JVM

基本介绍

概念

JVM的全称 Java Virtual Machine,JVM负责把java文件进行编译并且根据不同版本最终解释平台可以执行的机器指令,交给系统执行。

JVM也是有不同的版本,有很多不同的实现Sun/OracleJDK和OpenJDK中的默认实现是HotSpot虚拟机。

java程序过程

JVM内存区域

Java虚拟机执行java程序的的时候会对内存区域进行划分数据区域,为了提高程序执行效率,JVM虚拟机对程序解释执行的时候会对类的属性进行分区域保存(静态常量、类、程序运行时变量和字符串对象)等的内存进行分配。

虚拟机栈:执行自定的方法。

本地方法栈:执行本地方法。

堆/方法区:不同的版本也是有所差异。

  • 1.6:有永久代,静态变量放在永久代。
  • 1.7:有永久代,但是字符串、静态变量放在堆上减少永久代使用。
  • 1.8:无永久代,运行时常量池、类常量池,都保存在元数据区(元空间),但是字符串常量池仍在堆上。