类加载是指JVM 的类加载器把类的class文件读入内存,并创建java.lang.Class对象。
类也是一种对象,所有类都是java.lang.Class的实例
类的连接:验证类是否正确的内部结构;为类的静态Field分配内存,并设置默认值;把类的二进制数据的符号引用替换为直接引用。
类的初始化:对静态Field进行初始化,初始化的时机:
(1)创建类的实例:new创建,反射,反序列化等
(2)调用某个类的静态方法
(3)访问类的静态Field或赋值
(4)反射机制创建Class.forName("Person")
(5)初始化某个类的子类
(6)java命令运行某个主类
特例:final修饰的变量是宏变量,编译时直接替换,不会引起类的初始化
类加载器:根类加载器>拓展类加载器>系统类加载器>用户类加载器
原文:http://www.cnblogs.com/thly1990/p/3560142.html