编译时常量
编译时常量:在编译源码时能计算出具体数值的常量,
public class PrintWords{
??? public static void main(String[] args){
//??????? System.out.println(Temp.a);??????? //A处
//??????? System.out.println(Temp.b);??????? //B处
//??????? System.out.println(Temp.c);??????? //B处
//??????? System.out.println(Temp.i2);??????? //B处
//??????? System.out.println(Temp.b1);??????? //B处
//??????? System.out.println(Temp.s1);??????? //B处
//??????? System.out.println(Temp.aa);??????? //B处
??????? System.out.println(Temp.e);??????? //B处
??? }
}
class Temp{
??? static{
??????? System.out.println("Temp类已被初始化");
??? }
??? public static final int a=10;
? //编译期可以计算出来a=10,所以a是编译期常量
? public static final int b=((int)(Math.random()*10));
? //编译期不可以计算出b的值,所以b不是编译期常量
? public static final int c=a+1;
? static final int d= "hello world".length();
? public static final Integer i2=1;
? public static final Boolean b1=true;
? public static final String s1="0";
? public static final int i3=s1.length();
? public static final A aa=new A();
? public static final Enum e=E.A;
}
class A{
}
enum E {
??? A,B,C,D,E,F,G;
}
//编译时常量只有可能是基本类型和String类型,而不可能是任何的引用类型,包括枚举,包装。