静态代码块主要指的是使用static关键字定义的代码块,静态块的定义需要考虑两种情况:注类中定义静态块、非主类中定义静态块。
范例:在非主类中进行静态块的定义
class Person{
public Person(){
System.out.println("【构造方法】Person类构造方法执行");
}
static{
System.out.println("【静态块】静态块执行");
}
{
System.out.println("【构造块】Person构造块执行");
}
}
public class JavaDemo{
public static void main(String args[]){
new Person();
new Person();
new Person();
}
}
此时可以发现静态代码块会优先于构造块执行,并且不管有多少个实例化对象出现静态代码块只会执行一次,静态代码块的主要目的是为类中的静态属性初始化。
范例:观察静态属性初始化
class Message {
public static String getCountry(){
return "中华人民共和国";
}
}
class Person{
private static String country;
static{
//可能有很多语句要执行
country = Message.getCounty(); //编写一部分代码
System.out.println(country);
}
}
public class JavaDemo{
public static void main(String args[]){
new Person();
new Person();
new Person();
}
}
对于静态代码块还必须考虑另一种情况,在主类中定义的形式。
范例:在注类中进行静态代码块的定义
public class JavaDemo{
static{
System.out.println("*************程序初始化***********");
}
public static void main(String args[]){
System.out.println("哈哈哈哈哈哈哈哈哈哈");
}
}
静态代码块优先于主方法执行。
网友评论