2静态代码块
1.1静态代码快
可以使用static关键字来定义“静态代码块”
* 1.语法格式:
* static{
* java语句;
* }
* 2.静态代码在类加载的时候执行,并且只执行一次
* 3.静态代码块在一个类中可以编写多个,并且遵循自上而下的顺序依次执行
* 4.静态代码的作用是什么?怎么用?在哪用?什么时候用?
* ------这当然和具体的需求有关,例如项目中要求在类加载时刻执行代码完成日志的记录
* 那么这段记录日志的代码就可以编写到静态代码块中,完成日志记录
* ------静态代码块是java为程序员准备的一个特殊的时刻,这个特殊的时刻被称为类加载时刻。若:
* 希望在此刻执行一段特殊的程序,这段程序可以直接放到静态代码块当中。
*5.通常在静态代码块当中完成预备工作,先完成数据的准备工具,例如:初始化连接池,解析XMI配置工作
*/
1.2,来看一段静态语句的代码
public class StaticTest {
static{
System.out.println("类加载- - >1");
}
static{
System.out.println("类加载- - >2");
}
static{
System.out.println("类加载- - >3");
}
public static void main(String[] args) {
System.out.println("main begin");
}
}
1.3.执行结果如下:
1.4
静态代码在类加载的时候执行,并且只执行一次
2.实例代码块
2.1.关于实例代码块
* 实例语句块/代码块
* 1.实例代码块可以编写多个,也是遵循自上而下的顺序依次执行
* 2.实例代码块在构造方法执行之前执行,构造方法执行依次,实例代码块对应执行一次
* 3.实例代码块也是Java语言为程序员准备的一个特殊的时期,这个特殊时机被称为:对象初始化时机
2.2下面来看一下这个例子帮助理解上述内容
public class Test {
//构造函数
public Test(){
System.out.println("Test类的缺省构造器执行");
}
//实例代码块
{
System.out.println(1);
}
{
System.out.println(2);
}
{
System.out.println(3);
}
//主方法
public static void main(String[] args) {
System.out.println("main begin");
new Test();
new Test();
}
}
2.3执行结果如下:
2.4这个小例子可以看出
实例代码块在构造方法执行之前执行,构造方法执行依次,实例代码块对应执行一次