static{}的意思.

来源:互联网 发布:python如何显示图像 编辑:程序博客网 时间:2024/04/27 15:13

static{}中的代码表示是在类装载的时候执行一次,且仅执行一次;

我举个例子吧:  
public class Example{
    static String stra = new String("hello world");
{
   stra = "hello";
   System.out.println("初始块被调用");
}
static{
   stra = "STATIC";
   System.out.println("静态初始块被调用");
}
public Example(){
   stra = "Welcome To Contructor";
   System.out.println("构造函数被调用");
}
public void show(){
   System.out.println(stra);
}
public static void main(String [] args){
   Example example = new Example();
   example.show();
}
}
// 运行结果:  
//             静态初始块被调用  
//               初始块被调用  
//                构造函数被调用  
//                Welcome   To   Constructor 

      但是单个{}是什么意思?去掉它就报错!

      这是块初始化,块初始化在对象产生之前就完成.
      如果在块初始化 前用关键字static 修饰,则表明是静态块初始化,静态初始化在类被调用时就完成.所以静态初始更优先于非静态块初始化!
      用{}这个之后,就可以执行一些方法了,如果没有,只能定义属性或者方法,而且执行这个的话在类初始化的时候就会执行。至于去掉{}不能运行那是因为System.out.println()要放到方法内部执行,或者静态初始化块