什么是代码块?
代码块:大括号中间的代码 { }
构造代码块的功能是?
构造代码块:【使用new + 构造方法创建当前类对象】,就一定会执行构造代码块中的内容
;
格式:在class大括号以内,成员变量之后,构造方法之前;
//构造代码块
{
........
}
什么是静态代码块?
功能:**类文件加载,静态代码块中的内容一定会执行,有且执行一次
;类文件的加载是当前代码中,的确需要当前类,才会进行加载;
格式:在class大括号以内,成员变量之后,构造方法之前;
//静态代码块
static{
.......
}
作用:一般会使用类文件加载操作过程,完成一定的自动化操作。程序的配置,数据的加载,驱动的使用,资源的处理
…
例如:JDBC,链接数据库
补充:非静态成员变量,非静态成员方法,this关键字都无法在静态代码块中使用;
class Member {
//构造方法
public Member(){
System.out.println("构造方法");
}
//成员变量
private String name;
//成员方法
public void test(){}
//构造代码块
{
System.out.println("构造代码块");
}
//静态代码块
static {
System.out.println("静态代码块");
}
public static void main(String[] args) {
Member member = new Member();
}
}
代码执行流程是?
<1> 构造方法与构造代码块比较 -> 构造代码块先执行;
<2> static修饰的静态内容都是要先执行的;【从上到下,从左到右】