>类何时被加载?
>1.调用静态成员(静态属性和静态方法)时,会加载静态成员所在的类及其父类。通过子类调用父类的静态成员,只会加载父类,不会加载子类。
package com.hjhedu.static_;
public class CodeBlock {
public static void main(String[] args) {
Cat.show();//子类调用父类的静态成员只需要加载父类,不需要加载子类
}
}
class Animal{
public static void show(){
System.out.println("Animal的静态方法");
}
static{
System.out.println("Aniaml的静态代码快");
}
}
class Cat extends Animal{
static {
System.out.println("Cat的静态代码块");
}
}
//输出:
//Animal的静态代码块
//Animal的静态方法
>2. 创建对象实例时(即new 对象),第二次创建该类对象不会再加载。
>3.加载子类前,要先加载父类。
如果静态属性有 final 修饰时,则不会加载,当成常量使用。