Java 浅析代码块的由来及用法
背景介绍
在Java中,代码块是一段静态或动态语句代码,在执行时会形成一个作用域。根据代码块的位置和声明方式,可以分为实例初始化块、静态初始化块和局部代码块。
实例初始化块
实例初始化块是被定义在类内部,但没有被声明为静态的代码块,可以在创建对象时被调用,用于对对象进行初始化操作。
public class Person {
private String name;
private int age;
{
System.out.println("执行实例初始化块");
name = "张三";
age = 18;
}
public Person() {
System.out.println("执行构造函数");
}
public static void main(String[] args) {
Person person = new Person();
}
}
上述代码中,实例初始化块在创建对象时会被调用,输出“执行实例初始化块”,并将name和age初始化为“张三”和18。
静态初始化块
静态初始化块是被定义在类内部,并且使用static关键字修饰的代码块。它在类加载时执行,只执行一次,用于对静态变量进行初始化操作。
public class Student {
private static String school;
static {
System.out.println("执行静态初始化块");
school = "清华大学";
}
public static void main(String[] args) {
System.out.println("学校名称:" + Student.school);
}
}
上述代码中,静态初始化块在类加载时执行,输出“执行静态初始化块”,并将school初始化为“清华大学”。
局部代码块
局部代码块是被包含在方法或语句中的代码块,用于限制变量的作用域,避免变量污染和泄漏。
public class Test {
public static void main(String[] args) {
int num = 10;
{
int num2 = 20;
System.out.println("局部变量num2:" + num2);
System.out.println("外部变量num:" + num);
}
// 局部变量num2已经失效
System.out.println("局部变量num2:" + num2); // 编译错误
}
}
上述代码中,局部代码块可以限制num2的作用域,避免影响num的值。在代码块外部,num2变量已经失效,不能再使用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java 浅析代码块的由来及用法 - Python技术站