📄 classinitialization.java
字号:
package chapter14;
import java.util.*;
class Initable{
static final int staticFianl=47;
static final int staticFinal2=ClassInitialization.rand.nextInt(1000);
static{
System.out.println("Initialization Initable");
}
/*
* static 语句在类被加载时都会被执行。
*/
}
class Initable2{
static int staticNonFinal=74;
static{
System.out.println("Initializing Initable2");
}
}
class Initable3{
static int staticNonFinal=74;
static {
System.out.println("Initializing Initables3");
}
}
public class ClassInitialization {
public static Random rand=new Random(47);
public static void main(String args[])throws Exception{
Class initable=Initable.class;
/*
* 用了这条语句也就是用.class创建对Class对象的引用时,不会自动初始化类。
*/
System.out.println("After creating initable ref");
System.out.println(Initable.staticFianl);
System.out.println(Initable.staticFinal2);
/******************** ********************************/
System.out.println(Initable2.staticNonFinal);
/****************************************************/
try{
Class.forName("chapter14.Initable3");
/*
* 如果没能加上chapter14.抛出了异常,加上后就正常了。
*/
}catch(Exception e){}
System.out.println("After creating Initable3 ref");
System.out.println(Initable3.staticNonFinal);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -