//静态代码块:随着类的加载而执行,只执行一次,优先于main函数的执行
class Test1{
static {
System.out.println("c");
}
}
public class Demo5 {
static {
System.out.println("a");
}
public static void main(String[] args) {
new Test1();
}
static{
System.out.println("b");
}
}
//执行结果为a、b、c.程序首先加载Demo5,静态代码块是随着类加载而加载的,所以先输出a,然后Demo5里面还有一个静态代码块,于是又输出b,最后执行main函数的Test1,
//Test1已加载,就会执行静态代码块,就会输出c
===============================================================================================================================
//静态代码块:随着类的加载而执行,只执行一次,优先于main函数的执行
//静态代码块的作用:可以用于类的初始化
class Test1{
static int num=10; //要想在静态代码块使用的话,必须设置为静态常量
static {
System.out.println(num);
}
public static void show(){//静态方法可以直接通过类名调用
System.out.println("show");
}
}
public class Demo5 {
static {
System.out.println("a");
}
public static void main(String[] args) {
Test1 t=null; //这里类没有加载,就不会执行Test1里面的静态代码块
}
static{
System.out.println("b");
}
}
/*
* 程序执行结果为:
* a
* b
*/