static :我们都知道被static 修饰的变量都是静态变量,对于静态变量在JVM中存在于常量池中,常量池一般在perm heap 中. 对于static 变量的初始化是在类构造器clinit中。
public class A {
public String name="peter";
public static final int age=100;
public static int salary = 10000;
static {
System.out.println("init static block");
}
}
public class Test {
public static void main(String[] args) {
// System.out.println(A.age);
System.out.println(A.salary);
}
}
result :
init static block
10000
final static :被final修饰的变量一旦初始化其值或引用都不能修改,final static基本类型的变量的初始化是在类初始化的准备阶段。引用类型的变量初始化也是在类构造器clinit中
public class Test {
public static void main(String[] args) {
System.out.println(A.age);
// System.out.println(A.salary);
}
}
result :
100