静态代码块只执行一次。
构造代码块在每一次构造对象的开始执行,每构造一次都会执行一次。其与构造函数的区别是构造代码块无论针对所有的对象初始化都会执行,构造函数只会和相匹配的函数一致时才会执行。
下面为静态代码例子
class StaticCode{ static { System.out.println("I'm staticcode"); } void show() { System.out.println("show run"); }}class StaticCodeDemo{ public static void main(String[] args) { new StaticCode().show(); new StaticCode().show(); }}///结果//I'm staticcode//show run//show run
下面是构造代码块的例子
class Person{ String name; //构造函数的代码块 { System.out.println("哇啊"); } Person() { name="baby"; show(); } Person(String name) { this.name=name; show(); } void show() { System.out.println("name"+name); }}class StaticConstructor{ public static void main(String[] args) { Person p1=new Person(); Person p2=new Person("旺财"); }}//哇啊//namebaby//哇啊//name旺财