代码块
1.静态代码块
格式
static{
// 执行代码
}
- 每次执行类,加载类的时候都会先执行静态代码块一次。
- 静态代码块是自动触发执行的,只要程序启动静态代码块就会先执行一次。
- 作用:在启动程序之前可以做资源的初始化,一般用于初始化静态资源。
代码案例
public class DaimaKuaiDemo01 {
public static String sc_name ;
// 1.静态代码块
static {
// 初始化静态资源
sc_name = "黑马程序员!";
System.out.println("静态代码块执行!");
}
public static void main(String[] args) {
System.out.println("main方法执行");
System.out.println(sc_name);
}
}
2.构造代码块
格式
{
// 执行代码
}
特点
- 无static修饰。属于对象,与对象的创建一起执行的。
- 每次调用构造器初始化对象,实例代码块都要自动触发执行一次。
- 实例代码块实际上是提取到每一个构造器中去执行的。
- 作用:实例代码块用于初始化对象的资源
代码案例
public class DaimaKuaiDemo02 {
private String name ;
// 实例代码块。 无static修饰。
{
System.out.println("实例代码块执行");
name = "dl";
}
// 构造器
public DaimaKuaiDemo02(){
//System.out.println("实例代码块执行");
}
// 有参数构造器
public DaimaKuaiDemo02(String name){
//System.out.println("实例代码块执行");
}
public static void main(String[] args) {
// 匿名对象,创建出来没有给变量。
new DaimaKuaiDemo02();
new DaimaKuaiDemo02();
new DaimaKuaiDemo02("xulei");
}
} // 输出三次:实例代码块执行