代码块是一个独立的数据体,用于实现特定的算法,必须需要运行主体,否则不能单独运行;下面具体来分析代码块中的常见问题;
一、四种代码块####
- 普通代码块
普通代码块必须紧跟在方法名的后面,也必须由方法名具体调用; - 同步代码块
用关键字synchronized修饰,保证同一时间仅有一个线程实现访问; - 静态代码块
用关键字static修饰,用于初始化静态变量 ; - 构造代码块
编译器会将代码块按照它们的顺序插入到所有构造函数的前端,每个构造函数执行时均会调用构造代码;注意构造代码块不是在构造函数之前运行,而是依托构造函数运行;
二、静态代码块、构造代码块和构造函数的执行顺序####
public class Code {
private String codeAuthor;
private String codeStyle;
private static int codeLines;
// 用于初始化静态变量
static{
codeLines = 111;
System.out.println("静态代码块初始化");
}
public Code(){
System.out.println("无参构造函数"+codeLines);
}
public Code(String codeStyle){
this.codeStyle = codeStyle;
System.out.println("有参构造函数"+codeStyle+codeLines);
}
// 用于在构造函数前执行,初始化实例变量
{
codeAuthor = "CaiFeng";
System.out.println("构造代码块"+codeLines);
}
public static void main(String[] args) {
Code c = new Code();
Code c1 = new Code("casual");
}
}
// 代码打印结果
静态代码块初始化
构造代码块111
无参构造函数111
构造代码块111
有参构造函数casual111
- 静态代码块 > 代码块 > 构造函数
无数优秀的学长学姐强调基础的重要性,在Java进阶的道路上,砥砺前行。欲知后事如何,且听下回分解。
网友评论