静态块和实例块之间的java差异
有人能解释一下输出吗?我不明白为什么在打印实例块代码后显示错误
class Test
{
int x=5,y=6;
static Test t=new Test();
{
System.out.println("instance block");
System.out.println(t.x);
}
public static void main(String args[])
{
}
}
# 1 楼答案
static
变量t
的初始化:创建
Test
类的实例,该类执行实例初始值设定项块:实例初始值设定项块正在尝试打印
t.x
,但t
仍然是null
(因为t
只能在创建Test
类的实例后分配一个值)。因此NullPointerException
被抛出