编译期常量指的就是程序在编译时就能确定这个常量的具体值。
非编译期常量就是程序在运行时才能确定常量的值,因此也称为运行时常量。
定义上来说,声明为final类型的基本类型或String类型并直接赋值(非运算)的变量就是编译期常量,即:
// 编译期常量
final int i = 4;
final String str = "dasd";
// 非编译期常量
final String str1 = new String("dasd");
由于编译期常量在编译时就确定了值,使用编译期常量的地方在编译时就会替换成对应的值
转载自
链接: link.