JAVAEE初阶JVM
- 电脑硬件
- 2025-08-25 11:39:02

JVM
Java是一个跨平台的语言,可以不加修改在任何操作系统中运行。
JVM运行流程 代码编译之后生成了什么文件?java文本文件 —> class字节码文件,最终会在JVM中执行。
class文件怎么被JVM加载并运行? JVM运行时数据区JVM运行时数据区包括:堆,Java虚拟机栈,本地方法栈,程序计数器,方法区。
方法区(内存共享)保存的就是类对象(new 对象的模版) 方法区是JVM中的规范。JDK7的实现中称为永久代,JDK8的实现中称为元空间。区别在于管理内存的方式不同。 因为存放的是公共的数据,那么所有的线程都可以访问这个区域。
堆(内存共享)在代码中使用new关键词创建的对象,全都在堆区(内存空间) JVM内存使用最大的一个内存区域,默认程序最大的运行内存是本机的8/1。 我们常见的JVM参数设置 -xms10m 最小启动内存是针对堆的,-Xmx10m 最大运行内存也是针对堆的。 ms是memory start的简称,mx是memory max的简称。
Java虚拟机栈(线程私有)Java虚拟机栈的作用:Java虚拟机栈的生命周期和线程相同。 每创建一个线程都会在内存中创建一个与之对应的Java虚拟机栈
本地方法栈调用本地方法时使用的栈
程序计数器(线程私有)记录当前线程执行到哪一行,下次回到CPU的时候从计数器位置开始执行。
JVM类加载的过程 加载在当前的classpath(当前的根目录)下找到所有的class文件,读取到内存中
验证验证class文件是否符合JVM的规范
准备为类中定义的静态变量分配内存并设置变量初始值 public static int value = 666; 它是初始化value的int值为0 ,而非666。
解析解析阶段是Java虚拟机将常量池内的符号引用替换为直接引用的过程,也就是初始化常量的过程。
初始化new 对象的过程,执行构造方法,以及父类的构造方法。
JAVAEE初阶JVM由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“JAVAEE初阶JVM”
下一篇
nginx作为下载服务器配置