5.7.3静态代码块
静态代码块也是定义在类中的,如果一个构造代码块使用了static关键字进行定义的话,哪么就表示静态代码块,静态代码块要考虑两种情况:
- 在非主类中定义的静态代码块。
- 在主类中定义的静态代码块。
范例:在非主类中定义的静态代码块
public class Hundred01 {
public Hundred01() {
System.out.println("【构造方法执行】");
}
static {
System.out.println("【静态块执行】");
}
{
System.out.println("【构造代码块执行】");
}
}
public class NintyNine_a {
public static void main(String[] args) {
new Hundred01();
new Hundred01();
}
}
【静态块执行】
【构造代码块执行】
【构造方法执行】
【构造代码块执行】
【构造方法执行】
静态代码块优先于构造代码块执行,并且不管实例化多少对象,静态代码块中的代码只执行一次。
静态代码块可以实现一些公共的初始化操作。
由于静态代码块优先于所有程序执行,所以可以利用静态代码块进行一些初始化操作。
范例:利用静态代码块执行初始化代码
public class Hundred02_a {
public static String getCountry() {
return "www.kkk.com";
}
}
public class Hundred02_b {
public static String getCountry() {
return "www.kkk.com";
}
}
public class Hundred02_c {
public static void main(String[] args) {
new Hundred02_b();
}
}
www.kkk.com
范例:在主类中定义静态代码块
public class Hunred02 {
public static void main(String[] args) {
System.out.println("6666666");
}
static {
System.out.println("9999999");//主类中的静态代码块
}
}
9999999
6666666
通过程序执行结果可以发现,主类中定义的静态代码块会优先于主方法执行。