JVM(类加载机制、字节码的执行机制、程序的编译与优化)

JVM

类加载机制

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

类加载过程

加载

全限定名:全限定名 = 包名 + 类型
第二步:磁盘上的字节流存储到内存里
第三步:生成对象代表这个类
在这里插入图片描述

class文件来源,了解一下:
Web Applet过时了,JSP过时了
动态代理技术?
在这里插入图片描述

可访问性,就是public,private…这种
在这里插入图片描述

在这里插入图片描述

验证

字节码文件不一定是java编译器编译而来的
在这里插入图片描述

在这里插入图片描述

准备

这个阶段只给类变量,即静态变量分配内存
设置初始值是设置0值,而赋具体值是在初始化阶段进行的
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

解析

将符号引用变成直接引用
在这里插入图片描述

初始化

在这里插入图片描述

静态代码块只能引用它前面定义的静态内容,因为clinit()方法是按顺序收集的
在这里插入图片描述

在这里插入图片描述

类加载器

在这里插入图片描述

双亲委派模型

重点
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

先找这个类是否被加载过,如果被加载过,直接返回
如果没有被加载过,c==null,那就看有没有父加载器,如果父加载器无法加载,会抛出异常,跳出;如果没有父加载器了,就说明到达顶层了,看看顶层启动类加载器能不能加载
如果父加载器加载失败,那么就自己加载
在这里插入图片描述

在这里插入图片描述

被破坏的场景1:在1.2之前已经有人自己写了类加载器,为了兼容这些代码,加了一个方法findClass(),自定义的类加载器可以在findClass()中完成加载
这样原来自定义的类加载器就不需要废弃,且也能保证使用双亲委派模型
在这里插入图片描述

如果基础类要加载子类代码,所以子类加载器应该在基础类加载器之前加载
这里引入了一个线程上下文加载器,如果出现这种情况,就用这个加载器加载,打破了双亲委派模型
在这里插入图片描述

在这里插入图片描述

字节码的执行机制

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

在这里插入图片描述

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

在这里插入图片描述

栈帧和常量池中栈帧所属方法的符号引用进行连接
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

重载是以静态类型为判定依据的
在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

0-15行是创建两个对象的过程,并分配内存,astore_1放在局部变量表的变量槽1的位置
16-21 aload是将两个sayHello方法压入栈顶,invokevirtual 是实际执行方法的地方
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

JAVA是基于栈的
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

b可以理解为是单字节bollean,s可以理解为short
在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

程序的编译与优化

重点关注即时编译
在这里插入图片描述

在这里插入图片描述

前端编译与优化了解一下即可
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

回边计数器(了解)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值