1. 静态代码块:最早执行,类被载入内存时执行,只执行一次。没有名字、参数和返回值,有关键字static。
2. 构造代码块:执行时间比静态代码块晚,比构造函数早,和构造函数一样,只在对象初始化的时候运行。没有名字、参数和返回值。
3. 构造函数:执行时间比构造代码块时间晚,也是在对象初始化的时候运行。没有返回值,构造函数名称和类名一致。构造代码块和构造函数都是在对象创建的时候执行,有几个对象就会执行几次。
下面我们看看代码:
package testStatic;
public class teststatic {
public static void main(String args[]){
static1 s1 = new static1();
}
}
class static1{
//静态代码块
static{
System.out.println("这里是静态代码块");
}
//构造代码块
{
System.out.println("这里是构造代码块");
}
//构造函数
public static1(){
System.out.println("这里是无参构造函数");
}
}
输出结果:
这里是静态代码块
这里是构造代码块
这里是无参构造函数
以上已经足以证明我的观点。