class Person
{
private int age;
private String name;
static private int eyes = 2;
static
{
System.out.println("这是静态代码块");
}
Person(int age,String name)
{
this.age = age;
this.name = name;
System.out.println("这是构造函数");
}
{
System.out.println("这是构造代码块");
}
public void print()
{
System.out.println("name:"+this.name+"age:"+this.age);
}
}
public class Test
{
public static void main(String[] args)
{
Person p1 = new Person(20,"hala");
p1.print();
Person p2 = new Person(22,"yyh");
p2.print();
}
下面是运行结果:
这是静态代码块
这是构造代码块
这是构造函数
name:halaage:20
这是构造代码块
这是构造函数
name:yyhage:22
我们可知:
静态代码块是随着类的加载而运行,静态代码块在类的生命周期中只运行一次。
构造代码块是与对象紧密相连,每创建一个对象就运行一次。
另外构造代码块的每次运行先于构造函数。