class A () {
   static Object obj = new Object();
    ……
}在多个线程中初始化A实例的时候,有没有可能造成obj被实例化多次

解决方案 »

  1.   

    不会。
    static属性只会被初始化一次,即在类被加载到Java虚拟机的时候被初始化一次。
      

  2.   

    static只会被执行一次所以说第二次遇到这个语句就会自动跳过
      

  3.   

    class A () {
      static Object obj = new Object();
      ……
    }这个static的obj肯定是在第一次用到A的时候实例化,如果在obj还未实例化的时候,同时有n个线程 new A(),是不是也不会造成冲突。或者说以下这样都写法是更安全还是没有必要class A () {
      synchronize(this) {
         static Object obj = new Object();
      }
      ……
    }
      

  4.   

    不存在线程问题,static成员是在虚拟机加载这个类的时候初始化的。
      

  5.   

    static当然只加载一次
    另外说一下     class A()是啥意思?