我们看如下代码:
public class Demo {
public static final int m=100;
public final static int n=200;
final static public int x=10;
final public static int y=20;
static final public int a=30;
static public final int b=40;
}
以上代码通过编译,其中public、static、final这三个关键字可以按不同顺序进行定义常量,这是为什么呢?我们知道通过反射技术我们可以得到类中属性、方法、构造器等,通过java.lang.reflect.Modifier可以得到访问级别(也就是private static 等)的int值,而JVM在编译java代码时是根据其访问符的int值,只要其int值是个符合要求的值就OK,而不管其所在位置。