我创建了一个类,其中包含:
据我所知,
在这种情况下,在内存级别上发生了什么?
类没有加载到内存中吗?如果没有,其他类从何处获取
情况1:
static final
变量- 带有
System.out.println()
语句的static
初始化块
static final
变量,则static
块不会执行。据我所知,
static
初始化块在类加载到内存中时执行。在这种情况下,在内存级别上发生了什么?
类没有加载到内存中吗?如果没有,其他类从何处获取
final static
变量的地址?
情况1:
static
块不执行class Test2 {
static final int a = 20;
static {
System.out.println("one");
}
}
案例2:static
代码块确实会执行
class Test2 {
static final int a;
static {
a = 20;
System.out.println("one");
}
}
输出
class Test {
public static void main(String[] args) {
System.out.println(Test2.a);
}
}
Case 1:
20
Case 2:
one 20
那么在这两个级别上会发生什么?