定义一个测试类测试static静态代码块:
package com.lbj.javase08;
/*** 可以使用static关键字来定义"静态代码块"* * 1.语法格式:* static{* java语句;* }* * 2.静态代码块在类加载的时候执行,并且只执行一次* * 3.静态代码块在一个类中可以缩写多个,并且遵循自上而下的顺序依次执行* * 4.静态代码块的作用什么?用在哪儿?什么时候用?* * 这当然和具体的需求有关,例如项目中要求类加载的时候执行代码完成日志的记录* 那么这段记录日志的代码就可以缩写到静态代码块中,完成日志记录* * 静态代码块是java为程序员准备一个特殊的时刻,这个特殊的时刻被称为类加载时刻。* 若希望在此刻执行一段特殊的程序,这段程序可以直接放到静态代码块中。* * 5.通常在静态代码块中完成预备工作,先完成数据的准备工具,* 例如:初始化连接池,解析xml配置文件* @author 14811**/
public class staticTest01 {static{System.out.println("类加载1");}static{System.out.println("类加载2");}static{System.out.println("类加载3");}public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("main begin");}}
package com.lbj.javase08;
/*** 方法什么时候定义为静态的?* 方法描述的是动作,当所有的对象执行这个动作的时候,最终产生影响是一样的,那么* 这个动作已经不再属于某一个对象动作了,可以将这个动作提升为类级别的动作,模板* 级别的动作。* * 静态方法中无法直接访问实例变量和实例方法* 只能实例化引用再访问* * 大多数方法都定义为实例方法,一般一个行为或者一个动作在发生的时候,都需要对象的参与* 但是也有例外,例如:“大多数 ”工具类的方法都是静态方法,因为工具类就是方便编程,为了* 方便方法的调用,自然不需要new对象是最好的* @author 14811**/
public class staticTest02 {//实例变量int i=100;//实例方法public void doSome(){}//静态方法【静态上下文】public static void main(String[] args) {// TODO Auto-generated method stub
// System.out.println(i);
// doSome();staticTest02 st=new staticTest02();st.doSome();}
/** 总结:* class 类{* 静态代码块;* 实例代码块;* * 静态变量;* 实例变量;* * 构造方法;* * 静态方法;* 实例方法;* * * * }* */
}