代码块: 是在创建对象期间执行的代码块。类似构造器,一般使用构造器代替代码块的功能。(优先于构造方法执行)
静态代码块: 在类加载期间执行的代码块, 只执行一次。有时候用于加载一次性资源, 如:背景图片
package day04;
/**
* 代码块: 是在创建对象期间执行的代码块
* 静态代码块: 在类加载期间执行的代码块, 只执行一次
* 静态代码块: 有时候用于加载一次性资源, 如:背景图片
*/
public class Demo03 {
public static void main(String[] args) {
new Koo();
new Koo();
}
}
class Koo{
//System.out.println("HI");//编译错误,类中不能写语句
{int a=8; System.out.println("HI"+a);}//代码块
static{System.out.println("LoadKoo()");}//静态代码块
}
运行结果:
LoadKoo()
HI8
HI8
package day04;
public class Test03 {
public static void main(String[] args) {
new zi();
new zi();
}
}
class fu{
/*static*/ {System.out.println("父类静态代码块");}
fu(){
System.out.println("父类构造方法");
}
}
class zi extends fu{
/*static*/ {System.out.println("子类静态代码块");}
zi(){
System.out.println("子类构造方法");
}
}
运行结果:
父类静态代码块
父类构造方法
子类静态代码块
子类构造方法
父类静态代码块
父类构造方法
子类静态代码块
子类构造方法