对java中类的加载和内存不局一直不是很清楚,现想大家请教。class A{
static int var_A;
String str_A;
}class B{
static A a;
int var_B;
}现在有上面所示的代码,那么
B b = new B();
这个代码在运行后,内存中是怎么样个情况。[code=Java]B.a = new A();[code]
这个代码运行之后又是什么样的情况呢??在这两种情况中A的构造是什么样的情况?

解决方案 »

  1.   


    class Singlton{
    private Singlton(){}
    private static class Holder{
    static Singlton instance = new Singlton();
    }
    public static Singlton getInstance(){
    return Holder.instance;
    }
    }这是关于单例模式线程安全的写法。class Singlton{
    private static Singlton instance = new Singlton();
    private Singlton(){}
    public static Singlton getInstance(){
    return instance;
    }
    }而下面这样写也是线程安全的啊,他们的区别在哪呢??
    是考虑的延迟加载吗?
    那么下面的代码的具体加载顺序又是怎样的呢??Singlton instance = Singlton.getInstance();