JVM内部架构
每天都在用JVM,那你知道JVM是如何工作的吗?大概应该知道吧?看下图:
从图中我们可以知道,JVM大概由几部分组成:类加载器、内存区域、执行引擎、本地接口库。其中类加载器负责把磁盘上的.class文件加载到JVM内存中去; 执行引擎负责代码执行,执行过程中会使用到内存区域;内存区域划分为几块,各自有各自的用处。
java代码如何被JVM执行的?
整体流程很简单:
我们写的.java文件计算机是识别不了的,所以首先我们写的代码需要从.java文件编译为.class文件,.class是字节码文件,里面都是一些字节码指令,这样的字节码指令才是计算机可以识别的。而编译过程一般是maven这样的构建工具来做的,我们只需要一个命令下去就可以达成jar包。
然后把打好的jar包放到服务器上,java –jar命令来启动,此时,一个JVM进程便起来了。当然,java –jar命令中可以包含一些设置参数、classpath、主方法所在类等,如下所示:
java –jar –Xmx1024m –Xms1024m –Xmn512m –classpath /xxx/xxx/xxx.jar:/xxx/xxx/xxx1.jar com.cn.test.MainApplication
此时JVM会按照指定的参数进行启动,按照设定的classpath来读取.class文件,按照指定的主类的路径查找MainApplication.class文件,通过类加载器将MainApplication.class文件加载到JVM内存中, 初始化MainApplication类,然后执行MainApplication,在执行过程中用到了什么类,JVM的类加载器就会把这些类对应的.class文件也加载到JVM内存中,这样一个新的JVM就开始它的工作了。
1、JVM是如何工作的?_jerry_dyy的博客-CSDN博客_jvm是如何运行的
2、JVM的类加载机制_jerry_dyy的博客-CSDN博客
3、JVM内存区域划分_jerry_dyy的博客-CSDN博客_jvm的内存区域划分
4、JVM垃圾回收机制_jerry_dyy的博客-CSDN博客
5、JVM分代模型--新生代 的垃圾回收_jerry_dyy的博客-CSDN博客_jvm新生代划分
6、JVM分代模型--老年代 的垃圾回收_jerry_dyy的博客-CSDN博客
7、常见的垃圾回收器_jerry_dyy的博客-CSDN博客
9、学会查看GC日志_jerry_dyy的博客-CSDN博客
10、摸清JVM运行状况_jerry_dyy的博客-CSDN博客