一附上Demo,注释有相关知识点:
package com.dong.java.enhance;
/**
*
* @author Administrator
*
*/
public class TestOneDay {
int c;
static int cc=999;//静态变量
public TestOneDay(){
System.out.println("AAA"+ c); //第四个执行
}
{
int b=2;
System.out.println("A"+b);//代码块中定义的局部变量也是需要初始化 第三个执行
System.out.println("AA"+c);//输出成员变量的值
}
static {
System.out.println("AAAA"+0);//第一个执行
}
public static void main(String[] args) {
int a=0; //方法中的局部变量需要进行初始化
String s1="aaaaa";
int age=11;//方法中的局部常量需要进行初始化
// s1="vv"; 此时就会直接报错就是因为变量前被final修饰
System.out.println(a); //第二个执行
System.out.println(age);
System.out.println(new TestOneDay());
}
/*总结如下:(本例有特殊之处,需要注意下)
* new一个对象时第一步 首先执行静态代码块
* 第二步是 执行代码块
* 第三步是执行最后的构造方法,也就是创建成一个对象
*/
}