美文网首页
java 虚拟机原理

java 虚拟机原理

作者: 厚积方能薄发 | 来源:发表于2020-07-28 16:05 被阅读0次

初级

我们平常写的代码放在.java文件中,经过javac会将其编译成.class字节文件,执行的时候会将这些字节class文件载入内存执行。

中级

Java的类加载器将.class文件载入内存,并分配给RuntimeDataArea,执行引擎会解释或编译这些类文件,转化成特定CPU机器码,CPU执行机器码,到此结束整个过程。

高级

类加载器分为4种:Bootstrap、Extention、System、UserDefined,它们分别加载系统基本API、安全性能相关、应用程序中的类(也就是classpath中配置的)、开发人员自定义一些程序需要加载的类。

运行时区域:
堆内存:存放对象实例。
方法区:被虚拟机加载的类信息、常量、变量、方法。
运行时常量池:是方法区的一部分,存放程序中使用的各种常量。

以上这些是被线程所共享的。
而另外一部分就是线程,而每个线程中又包括了:虚拟机栈、程序计数器、本地方法栈。
虚拟机栈:作用是存放一系列栈帧,执行一个方法时入栈,结束时出栈。
程序计数器:每个线程启动时会创建一个程序计数器,它用来存放当前正在被执行的字节码指令的地址。
本地方法栈:与虚拟机栈类似,但它是用来执行native方法。

执行引擎:
Java的字节码,并不能被机器识别,如果想要被机器运行还要转换为机器码,而类执行引擎就是来完成这一步的,可以由其字节码解释器来转换,也可由即时编译器来转换。

相关文章

网友评论

      本文标题:java 虚拟机原理

      本文链接:https://www.haomeiwen.com/subject/jxbfrktx.html