1 class FinalTest
{
public static final String staticValue1 = "静态变量1";
public static final String staticValue2;
static
{
staticValue2 = "静态变量2";
}
public final String value1 = "实例变量1";
public final String value2;
public final String value3;
{
value2 = "实例变量2";
}
public FinalTest()
{
value3 = "实例变量3";
}
}对于实例final变量,最晚在构造方法中赋值。对于静态final变量,最晚在静态初始化块中赋值。
另外类有实例化时,变量的加载顺序为:静态变量或静态块-实例初始化块-构造器块
本文详细解析了Java中final变量的使用规则,包括实例final变量和静态final变量的赋值时机,以及变量在类实例化过程中的加载顺序。有助于理解Java内存模型及变量初始化流程。

被折叠的 条评论
为什么被折叠?



