简介:
Java中,final 关键字有几种使用方式,主要用于表示不可改变的。对于类成员变量的初始化和默认值,本文主要介绍Java中final关键字使用的一些特殊情况,类成员变量和变量默认值。
1、类成员变量和默认值
private static Object x;
public static void main(String[] args) {
System.out.println(x); // Prints 'null'
}
没有明确地指定一个值x,默认值是null
。
注意:变量的初始值,每个类变量,实例变量或数组组件在创建时都使用默认值进行初始化。
上面情况不适用于局部变量,例如下面的示例:
public static void main(String[] args) {
Object x;
System.out.println(x);
// 编译时错误:
// 变量x可能没有初始化
}
2、 final变量
变量可以声明为final
。final
变量只能赋值一次。如果final
变量被赋值,那么它就是编译时错误,除非它在赋值之前确实没有被赋值。
例子,
public static void main(String[] args) {
System.out.println("After: " + X);
}
private static final long X = assign();
private static long assign() {
// Access the value before first assignment
System.out.println("Before: " + X);
return X + 1;
}
上面代码输出:
Before: 0
After: 1
final
变量初始化之后,就不能再赋值,例如,
private static long assign() {
// final变量X赋值
X = 1;
// 方法之后的第二个赋值将崩溃
return X + 1;
}
final
变量自引用初始化
private static final long X = X + 1;
// 编译时错误:
// self-reference in initializer
了解更多分析及数据抓取可查看:
http://data.yisurvey.com:8989/
特别说明:本文旨在技术交流,请勿将涉及的技术用于非法用途,否则一切后果自负。如果您觉得我们侵犯了您的合法权益,请联系我们予以处理。