标签:
https://github.com/Moriadry/useful-things/tree/master/src/LoadClass
总结
一个类的初始化准备工作如下:
1.加载:这个由类加载器完成,他去查找字节码,并且创建一个Class对象
2.连接:验证类中的字节码,为静态域分配存储空间,并且如果必须的话,将解析这个类创建的对其他类的引用
3.初始化:如果这个类有超类,则对其进行初始化,执行静态初始化器和静态初始化代码块
初始化被延迟到了对静态方法(构造器是隐士的静态方法)或
非静态方法的首次引用才执行
由上面可以知道,接口不能被初始化,如果想定义常量,必须是在接口的字节码被装载到虚拟机的时候他的常量就得被访问,所以他必须是static final的
static final叫编译期常量,不需要初始化就能读取。
标签:
原文地址:http://www.cnblogs.com/mywy/p/5157070.html