1.Student stu = null;
2.Student stu = new Student():
运行程序:
程序走到1时,stu存在在栈中,不存在类加载以及Student类初始化属性的行为。
程序走到2时,Student类首先会被jvm所加载,加载的同时加载静态的属性(1),方法(2)到方法区,执行静态代码块(3)
(静态代码块最后执行,并且只会执行一次,而非静态代码块可以执行多次)
类加载完成之后jvm会在堆内存中开辟空间,执行属性的默认初始化(1),之后执行非静态代码块(2),最后执行构造函数(3)。