JVM 基础笔记(一)JDK 1.8

官网参考:https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.5.5

类加载机制

理解: 就是将xxxx.class文件交给 JVM去运行的过程

  • 装载

  1. 先找到类文件所在的位置, 类装载器ClassLoader.find(String name) (双亲委派机制  可以通过重写和线程方式破坏)  寻找类
  2. "类文件的信息文件"交给jvm  -->类文件字节码静态存储结构(一种流)--> 加载到JVM的某块区域内(Method Area  方法区)
  3. 把类文件所对应的对象Class --->JVM ----->放入堆(Heap)
  • 链接

  1. 验证:   保证被加载的类都能正确加载(格式是否正确,字节码是否正确,源数据是否正确)
  2. 准备: 要为类的静态变量分配内存空间,并且将其值初始化成默认  例如 我们代码中写的是 public static final int a = 10;  这时会将 int a 初始化成默认的 0  也就是    int a = 0
  3. 解析: 将类中的符号引用(class文件中的一个代称,如String s1 的在class文件中的代称为flag1,flag1就是符号医用,与内存无关)转化为直接引用     String s1 = 真实地址(对应内存中的某一个真实的地址指向)
  • 初始化

   为静态变量,赋真正的值  a = 10

如图:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值