JVM笔记-1

学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。

尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)


Java和c++的区别:

Java是自动对内存动态分配的,自动进行垃圾回收。


应用程序——框架——API——JVM

在这里插入图片描述
目前默认的JVM虚拟机。三大Java虚拟机 : HotSpot, JRockit, IBM J9 JVM

使用热点代码技术JIT,提升效率


程序.java(用户)——>字节码文件.class(jvm字节码)——>不同平台的JVM)——>操作系统)——>硬件

程序虚拟机:JVM等
系统虚拟机:VMware等

Java中JDK、JRE、JVM关系


在这里插入图片描述
栈式架构:
优:可移植性强,跨平台,指令集小。编译器易实现。
缺:性能下降,指令多。


虚拟机生命周期:
在这里插入图片描述
在这里插入图片描述

Runtime类是单例实现的


JVM

在这里插入图片描述
在这里插入图片描述


Class Loader

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ClassLoader负责class文件的加载;

是否可以运行有Execution Engine决定。


加载阶段loading

在这里插入图片描述

链接阶段linking

在这里插入图片描述
链接:检查、准备(初始化变量)、解析(字段方法和引用转换)

初始化阶段lnitialization

在这里插入图片描述
类在加载的初始化阶段会调用clinit方法执行,对于static代码的执行,是按照定义顺序的。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

public class Test {
    private static int i = 10;

    static {
        i = 20;
        j = 5 ;
    }

    private static int j = 9 ;

    public static void main(String[] args) {
        System.out.println(Test.i); //20 linking: prepare: i=10 initial: i=20
        System.out.println(Test.j); //9 linking: prepare: i=5 initial: i=9
    }
}

字节码
在这里插入图片描述


jclasslib

在这里插入图片描述
查看字节码的插件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值