代码块使用频率低,其中了解静态代码块
一、局部代码块
- 在方法中直接写一对大括号。
- 应用场景:如果需要控制局部变量的生命周期,想让其使用完后尽快销毁,可以把局部变量定义在局部代码块。
二、构造代码块
- 在类中方法外直接写一对大括号。
- 调用时机:构造代码块会在调用构造方法的时候执行,并且在构造方中的代码执行之前执行。
- 应用场景:用来抽取构造方法中的重复代码,提高代码的复用性。
public class Person {
int num;
String name;
{
System.out.println("这是构造代码块");
}
public Person() {
System.out.println("Peerson的无参构造");
}
public Person(int num, String name) {
System.out.println("Peerson的有参构造");
}
}
public static void main(String[] args) {
Person person = new Person();
}
输出:
这是构造代码块
Peerson的无参构造
三、静态代码块
- 在类中方法外直接写一对大括号,括号前用static修饰。
- 调用时机:在类被加载的时候执行,同一个类在程序运行过程中只会被加载一次,所以只会执行一次。
- 应用场景:用来给类当中的静态成员进行初始化。
public class Person {
int num;
String name;
{
System.out.println("这是构造代码块");
}
static {
System.out.println("静态代码块");
}
public Person() {
System.out.println("Peerson的无参构造");
}
public Person(int num, String name) {
System.out.println("Peerson的有参构造");
}
}
public static void main(String[] args) {
Person person = new Person();
Person person1 = new Person(18,"cqy");
}
输出:
静态代码块
这是构造代码块
Peerson的无参构造
这是构造代码块
Peerson的有参构造