所谓代码块,也就是实用“{}”括起来的代码,根据位置不同,
在Java中一共有四种代码块:
1,普通代码块;
2,构造代码块;
3,静态代码块;
4,同步代码块;
1,普通代码块
public class DaimaKuai{
public static void main(String[] args) {
{
int x = 10;
System.out.println("x = " + x);
}
int x = 20;
System.out.println("x = " + x);
}
}
结果
x = 10
x = 20
2,构造代码块
class Demo{
{
System.out.println("1,构造代码块");
}
public Demo(){
System.out.println("2,代码块");
}
}
public class DaimaKuai{
public static void main(String[] args) {
new Demo();
new Demo();
new Demo();
}
}
结果
1,构造代码块
2,代码块
1,构造代码块
2,代码块
1,构造代码块
2,代码块
从中可以得知:
构造代码块优于构造方法执行,并且每次都会执行构造代码块中的内容;
3,静态代码块
class Demo{
{
System.out.println("1,构造代码块");
}
static {
System.out.println("普通类:静态代码块");
}
public Demo(){
System.out.println("2,代码块");
}
}
public class DaimaKuai{
static {
System.out.println("主类:静态代码块 ");
}
public static void main(String[] args) {
new Demo();
new Demo();
new Demo();
}
}
结果
主类:静态代码块
普通类:静态代码块
1,构造代码块
2,代码块
1,构造代码块
2,代码块
1,构造代码块
2,代码块
从中可以看出:
在主类中定义的静态代码块会优于主方法执行,在普通类中定义的静态代码块会优于构造方法执行,并且静态代码块只执行一次,而构造代码块执行多次。
同步代码块在多线程中使用,这里先不讲述。