一.简介
首先说一下,Java中有哪些代码块.
普通代码块
就是在方法后面使用"{}"括起来的代码片段,不能单独执行,必须调下其方法名才可以执行.
- 1
- 2
静态代码块
在类中使用static修饰,并使用"{}"括起来的代码片段,用于静态变量的初始化或对象创建前的环境初始化.
- 1
- 2
同步代码块
使用synchronize关键字修饰,并使用"{}"括起来的代码片段.它表示在同一时间只能有一个线程进入到该方法快中,是一种多线程保护机制.
- 1
- 2
构造代码块
在类中没与任何的前缀或后缀,并使用"{}"括起来的代码片段.
- 1
- 2
它们在类初始化时的顺序:由于synchronize依附方法,不会被初始化
静态代码块》构造代码块》构造方法
简单的例子:
public class Client {
{//构造代码块
System.out.println("执行构造代码块");
}
public void methodone()
{//synchronized 代码块必须依附于某个方法
synchronized (Client.class)
{
for(int i=0;i<len;i++){
System.out.print(name.charAt(i));
}
System.out.println();
}
public Client() { //构造函数代码块
System.out.println("执行无参构造函数");
}
static {//静态代码块
int i=0; int c=0;
}
}