public class Main {
static final int alex=getc();
static final int alex1=Integer.parseInt("10");
static final int alex2=getc();
public static int getc(){
return alex1;
}
public static void main(String[] args) {
final Main m = new Main();
System.out.println(alex+" "+alex1 +" "+alex2);
}
}
有人能告诉我为什么会打印出 0 10 10
吗?我知道它是一个静态常量,值应该不会改变,但理解编译器如何初始化字段还是有一点困难。
static final int alex1=Integer.parseInt("10");
实际上只是静态块的简写形式,编译器会把它转换成相同的形式。 - stevevls