----
不是虚拟机运行的内存区域
?
类的加载
java代码编译成class文件之后,就形成了类的信息-类的二进制字节流
想要使用,肯定要加载
?
生命周期
?...而且,对于非数组类的加载阶段,准确的说是加载阶段中获取类的二进制字节流的动作行为
是多样性的
可以使用系统提供的引导类加载器
也可以用户自定义的类加载器
开发人员可以通过定义自己的类加载器去控制字节流的获取方式...,不过这一步骤是程序员最关心的,单独拿出来说
类加载过程的最后一步,到了这个阶段才真正开始执行类中定义的Java程序代码(或者说是字节码)
初始化阶段是执行类构造器 ()方法的过程
?...所有的--> 类变量 和 静态语句块
() 对于类或者接口并不是必须的,如果一个类没有静态语句块
也没有对变量的赋值操作
编译器可以不为这个类生成()方法
接口中不能使用静态语句块...但是仍然有变量初始化,所以接口与类一样,也会生成这个方法
但是与类不同的是,不需要先执行父接口的()方法
只有当父接口定义的变量使用时,父接口才会初始化
虚拟机会保证一个类的<clinit