class a
{
static{ //静态代码块 只在第一次加载类的时候执行
System.out.println("静态代码块1,类加载它就加载了");
}
static{ // 可以有多个静态代码块
System.out.println("静态代码块2");
}
a() // 构参
{
System.out.println("构造函数");
}
{ //构造代码块 每初始化一个对象 都会执行这块代码 并优先于
//构造函数进行 也可以有多块
System.out.println("构造函数代码块1");
}
{
System.out.println("构造函数代码块2");
}
public static void main(String [] args)
{
System.out.println("第一次建立对象");
new a ();
System.out.println("再建立一个对象");
new a ();
System.out.println("主函数");
System.gc(); //调用垃圾回收机制 ,回收堆内存。
}
public void finalize() // 复写Object中的finalize函数 当垃圾回收器确定不存在
//对该对象的更多引用时,由对象的垃圾回收器调用此方法。
{
System.out.println("回收垃圾 ");
}
}
/*
C:\Users\Administrator\Desktop>java a
静态代码块1,类加载它就加载了
静态代码块2
第一次建立对象
构造函数代码块1
构造函数代码块2
构造函数
再建立一个对象
构造函数代码块1
构造函数代码块2
构造函数
主函数
回收垃圾
C:\Users\Administrator\Desktop>*/