java虚拟机学习记录之类加载(一)加载机制

时隔一年多又重新翻阅了一边j<深入理解java虚拟机> 一书对其写的知识又了更好的认识,所以决定做下笔记。

作为java开发者虚拟机好多的技术和理论我们只需要知道皮毛即可,但是个人觉得有些知识作为程序员还是必须要知道的。

类加载机就是我们必须掌握之一。

类加载时间

虚拟机开始加载类开始,到卸载为止,是整个的生命周期。

流程包括 

类加载----->验证----->准备----->解析----->初始化----->使用----->销毁

类加载:是指虚拟机加载包含class数据的二进制流

验证:是指验证二进制流中的信息是符合当前虚拟机的要求,是否有危害到虚拟机。

        包括验证文件格式 元数据 字节码 符号引用等。

准备:是正式为类分配内存和对变量进行初始化值(需要注意是初始化,而不是赋值)

解析:是指虚拟机将常量池内的符号引用替换为直接引用。

        包括 类接口的解析 属性的解析 方法的解析 接口方法的解析

初始化: 简单理解就是通过类对变量的定义赋值 来对已经在类准备过程中默认虚拟机初始化值做改变

         值得注意的是 静态语句块只能访问 静态语句之前的变量 。static修饰的只会在内存保存一份

public class Test{

        static int i=0;   

        static{

                i=1;

                System.out.println(i);//编译正常使用语句之前变量

                n =1 ;  

                System.out.println(n) //编译失败,其实和类加载顺序有关 。个人理解 n还没有初始化呢

          }

         static int n=0;   

}

使用:理解为调用即可。

销毁:使用完毕释放内存。

个人理解,如有不对 希望大神指出

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值