JVMLink过程

Link

Verify

class字节码是以 CA FE BA BE 开头. 
后面的 12 个字节是描述class 文件对应的jvm 版本.

Prepare

为类变量分配内存并设置该类变量的默认初始值. 零值

注: final 类型变量在编译的时候就分配了值

在这里插入图片描述

在上图的时候, static 类型的a,在prepare的时候,值是0

Resolve

将常量池内的符号引用转为直接引用

在这里插入图片描述
比如在此类中用到了其他类和方法. 这时候就会对这些类标识为字符串.

此方法会将所有类变量 赋值 动作和 static 代码块合并而来. 形成的方法

如果 类中没有 static 变量或者 static code bunk.
就没有 Clinit 方法

构造器函数

类加载器

Bootstrap

在这里插入图片描述

Extension

在这里插入图片描述

SystemClassLoader

自定义

1 隔离加载类
2 修改类加载方式
3 扩展加载源
4 防止源码泄漏
我们 继承 ClassLoader 重写 findClass 方法,

在这里插入图片描述

ClassLoader常用方法

双亲委派机制

1 防止类重复加载.

沙箱机制

略... ...

类的使用

主动

1. 创建类实例
2. 访问类或接口的静态变量,或对该类静态变量赋值
3. 调用类静态方法
4. 反射
5. 初始化一个类的子类
6. Java虚拟机启动时被标明为启动类的类
7. jdk7 开始提供的动态语言的支持

在这里插入图片描述

被动

略 ... ...
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值