HashMap hashMap=new HashMap();
static {
        hashMap.put(objectA.getCode(), objectA);
        hashMap.put(objectB.getCode(), objectB);
        ....
}
此处的static{}作用是什么,这样写有那些好处?

解决方案 »

  1.   

    原 HashMap hashMap=new HashMap();
    为:
    private static HashMap hashMap = new HashMap();
      

  2.   

    static{}作用是:这个类创建时static{}中的内容就被初始化了。
      

  3.   

    Static是静态修饰符静态修饰符,是在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在。这样做有什么意义呢?
    在java程序里面,所有的东西都是对象,而对象的抽象就是类,对于一个类而言,如果要使用他的成员,那么普通情况下必须先实例化对象后,通过对象的引用才能够访问这些成员,让用户不需要实例化对象就可以引用成员.
      

  4.   

    原类是这样是地区类
    public class Area{
      private String code;
      HashMap hashMap=new HashMap();
      static {
            hashMap.put(objectA.getCode(), objectA);
            hashMap.put(objectB.getCode(), objectB);
            //....
      }
      public getCode(){
        return code;
      }
    /**
    根据地区的编号得到地区
    */
      public static Locale getLocale(String code) {
            return (Area) hash.get(code);
        }
    }
      

  5.   

    不好意思写错了
    public class Area{
      private String code;
      HashMap hashMap=new HashMap();
      static {
            hashMap.put(objectA.getCode(), objectA);
            hashMap.put(objectB.getCode(), objectB);
            //....
      }
      public getCode(){
        return code;
      }
    /**
    根据地区的编号得到地区
    */
      public static Area getArea(String code) {
            return (Area) hashMap.get(code);
        }
    }