- 普通代码块: 普通方法的方法体
-
构造代码块: 用
{}
包裹的代码 -
静态代码块: 用
static{}
包裹的代码
public class MethodTest {
private String tag;
static {
System.out.println("静态代码块");
}
{
System.out.println("构造代码块");
}
public MethodTest(String tag) {
this.tag = tag;
System.out.println(tag + "构造函数");
}
public void test() {
System.out.println(tag + "普通代码块");
}
public static void main(String[] args) {
MethodTest test1 = new MethodTest("test1");
test1.test();
MethodTest test2 = new MethodTest("test2");
test2.test();
}
}
运行结果:
静态代码块
构造代码块
test1构造函数
test1普通代码块
构造代码块
test2构造函数
test2普通代码块
从运行结果可知:
- 构造代码块在每次创建对象时调用,比构造函数先执行。
- 静态代码块只在第一次创建对象时执行一次,且比构造代码块先执行。
网友评论