JVM学习笔记(一)

java代码执行流程图

由于跨平台的设计,jvm指令根据栈来设计的。优点跨平台,指令集小,编译器容易实现,缺点是性能跟寄存器比有所下降。

int i = 3;
int j = 2;
int var10000 = i + j;

例如上面三行代码 我们编译后执行javap -v 命令后解析的指令有以下几步:

 stack=2, locals=4, args_size=1
         0: iconst_3
         1: istore_1
         2: iconst_2
         3: istore_2
         4: iload_1
         5: iload_2
         6: iadd
         7: istore_3
         8: return

而如果采用寄存器指令只需两步就能完成。

JVM的生命周期

1.jvm的启动
java虚拟机的启动是通过引导类加载器创建一个初始类来完成的。
2.jvm的执行
程序开始执行时jvm才运行,程序结束时他就停止。
3:jvm的退出
程序结束
程序出错
操作系统出错
执行了exit方法

类加载器子系统

在才

类的加载过程:
在这里插入图片描述

链接:
在这里插入图片描述
在这里插入图片描述

用静态内部类实现单例就是利用jvm只初始化一次class文件的原理。

我们可以安装idea这个插件来查看字节码文件:
在这里插入图片描述
在这里插入图片描述

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页