public class MyListServlet extends HttpServlet{
    private Hashtable hashForm = null;
    
4   {
5       if(hashForm==null){
6           .....代码
7       }
8   }    public void init() throws ServletException {
        .....
    }
    .....

请问第4行至第8行这样写可以吗?没见过这种写法,这段代码什么时候被执行?作用是什么?

解决方案 »

  1.   

    类被调用时执行,并且先于构造函数类似static{ //代码 } ;
      

  2.   

    类似static{ //代码 } ;
      

  3.   

    可以  相当于写在构造函数里
    -----------------------------------
    不太一样吧? 我只知道执行顺序不同!具体用法没想到.
    先执行static属情的赋值,下一步执行static无参函数,然后是普通赋值,最后是构造函数.
      

  4.   

    这不是static{//代码}
    而是相当于写在构造函数里的。比如你的这一句
        private Hashtable hashForm = null;既是声明,又是初始化。而4-8与之类似,并且与成员变量的声明同属于一个执行级别,会在对象实例化时,先于constructor中的代码执行。
      

  5.   

    看看这段代码的运行结果你就会明白了public class Example{
        String stra = new String(“Hello World”);    {
            stra = “Hello”;
            System.out.println(“初始块被调用”);
         }     static{
            stra = “STATIC”;
            System.out.println(“静态初始块被调用”);
         }
         
         public Example(){
             stra = “Welcome To Constructor”;
             System.out.println(“构造函数被调用”);
         }     public show(){
             System.out.println(stra);
         }     pubilc static void main(String[] args){
             Example example = new Example();
             
             example.show;
         }
    }运行结果:
            静态初始块被调用
            初始块被调用
            构造函数被调用
            Welcome To Constructor希望你能明白!
      

  6.   

    TO:sjwsly3214(烽火幽灵)------------这段代码是我 写的啊~~汗!!!
      

  7.   

    我再完善一下sjwsly3214(烽火幽灵)的测试     pubilc static void main(String[] args){         System.out.println("\n现在开始创建Example实例……");
             Example example = new Example();
             
             example.show();
         }
      

  8.   

    汗,一看基础就没学好,我学.net的还知道那是一种内部类呢。
      

  9.   

    哎现在的年轻人总把自己看得太高。
    我做ASP和ASP.NET都5年了,照样有看不明白的代码。
      

  10.   

    去看看java编程思想的第八章接口与内隐...
      

  11.   

    使用Java匿名内部类特性时, 这种语法是必须的.不过像上面这样的用法真是不值得推荐...
      

  12.   

    zez(思恩 闭关练功ing...) 我喜欢他的回复