静态变量在类加载的时候实例化,loadingXml实例化的时候sss还没有值。

解决方案 »

  1.   

    我看了,我也运行了,结果让人很郁闷我把private static LoadingXml loadingXml =new LoadingXml();
    放到private static String sss="ss";下面
    运行结果才是两个ss很郁闷的结果~~~但又有些道理,唉,这年头java都学到娘胎了去了
      

  2.   

    静态变量在类被加载的时候进行初始化,而且静态变量先于构造方法进行初始化
    首先,LoadingXml.getLoadingXml(),使得类被加载,静态变量loadingXml被初始化,初始化的过程中需要调用构造方法,然后构造方法再调用loadingJDBC(),但此时静态变量sss并没有被初始化,所以首先输出null
    然后,才是sss被初始化,被赋值为ss,所以LoadingXml.getLoadingXml()再调用loadingJDBC()方法,就输出ss了
      

  3.   

    当然啊,把private static LoadingXml loadingXml =new LoadingXml() 放到private static String sss="ss"的下面,那么sss就先进行初始化嘛,类加载的时候首先要初始化成员变量,然后才是构造方法
      

  4.   

    静态变量loadingXml被初始化的是 只是单单调用了他的构造函数么 ?
      

  5.   

    呃,我还真回答不上,看看谁能回答上来吧,不过想对java有比较深入的理解,看看Thinking in java吧,厚的确是厚了点,不过讲得很透彻