代码块
定义:{}中定义的一段代码
根据代码块出现的位置以及关键字不同,分为下面四类代码块
普通代码块
定义在方法中的代码块,解决方法中变量重命名的问题,了解即可,没什么意义。
public class 代码块 {
public static void main(String[] args) {
{
int n = 5;
}
int n = 0;
System.out.println(n);
}
}
构造块
定义在类中的代码块(不参与任何修饰),当有对象产生时,构造块优先于构造方法执行,产生几个对象,就调用几次构造块。作用是在构造方法执行之前进行一些初始化操作。
class A {
public A() {
System.out.println("这里是构造函数");
}
{
System.out.println("这里是构造块");
}
}
静态代码块
在类中使用static定义的代码块。
非主类的静态代码块:静态代码块在类加载时被调用,优先于构造快,不管产生多少实例化对象,只会被调用一次。
主类中的静态代码块:主类中的静态代码块优先于主方法执行。
public class 代码块 {
static {
System.out.println("这里是主类静态块");
}
}
class A {
public A() {
System.out.println("这里是构造函数");
}
static {
System.out.println("这里是非主类静态块");
}
}
同步代码块(多线程同步):
之后更