对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的构造是什么样的情况?
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的构造是什么样的情况?
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();