java类初始化

时间:2014-05-23 04:35:31   收藏:0   阅读:253

bubuko.com,布布扣

 

 

bubuko.com,布布扣
class SuperClass{
    
    static{
        System.out.println("super class init!");
    }
    static int superInt = 1;
    static String superString = "supString";
}

class SubClass extends SuperClass{

    
    static{
        System.out.println("sub class init!");
    }
    static final String subStringFinal = "subString";
    static String subString = "subString";
}


public class InitTest {

    public static void main(String[] args) {
        //下面这句只会触发父类初始化
        System.out.println(SubClass.superString);
        //下面这句不会出发父类初始化
        SubClass[] subArray = new SubClass[10];
        //下面这句不会出发类初始化,因为在编译阶段,final属性就已加到常量池中了
        System.out.println(SubClass.subStringFinal);
        //下面这句会出发子类初始化
        System.out.println(SubClass.subString);
    }
}
bubuko.com,布布扣

 

java类初始化,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!