java之普通代码块、构造块、静态块

代码块

定义:{}中定义的一段代码


根据代码块出现的位置以及关键字不同,分为下面四类代码块

普通代码块

定义在方法中的代码块,解决方法中变量重命名的问题,了解即可,没什么意义。

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("这里是非主类静态块");
	}
}

同步代码块(多线程同步):

之后更

猜你喜欢

转载自blog.csdn.net/likunkun__/article/details/83066227
今日推荐