62,620
社区成员
发帖
与我相关
我的任务
分享class P1{
static
{
System.out.println(1111111111);
}
static String name="ss";
}
class Test{
public static void main(String[] args){
P1 p=null;
System.out.println(p.name);
}
}class Person{
static{
System.out.println("wangwuyi");
}
static String name = "jing";
public Person(){
System.out.println("qing");
System.out.println(dsdf);
}
}
public class Static {
public static void main(String[] args) {
Person p = null;
System.out.println(p.name);
}
}
Person p= null;的时候没有初始化类,因为没有new,没有掉要构造器,但是p.name的时候初始化了类,初始化类的时候肯定是先执行静态初始化块的内容。有趣的是类的生命周期是类加载、连接、初始化、使用、卸载。然而调用p.name的时候正是初始化阶段,应该执行完了连接阶段,怎么没有把System.out.println(dsdf);这一错误检测出来那?求解释