一类里有一个静态自己的对象,为什么不会死循环呢?欢迎拍砖!

[code="java"]public class Mem extends ConcurrentHashMap {
private static final long serialVersionUID = 1L;
protected MongoOperations mongoOperations = null;
public static Mem data = new Mem(MongoDb.data);
public Mem(MongoOperations mongoOperations) {
this.mongoOperations = mongoOperations;
}

}[/code]
编译的时候,不是将静态的都编译好了吗?那再new一个自己,自己里面又有自己,为什么不会是死循环呢,我新手,求解~

1.静态变量的初始化.是类加载的时候就初始化了.所以静态变量只初始化一次

2.当然是共享.的.因为是一个静态变量.但是静态变量的调用不应该.用obj.value方式调用.
如果你在eclipse中会报黄.(警告)..正确的调用方法是Mem.data 就是(类名称.变量的方式)

静态变量是被所有的类共享的 所以所有的new出来的Mem实例共享的只有一个公共的data静态变量
作为区别,下面这个例子就会出现死循环
public class Mem {
public Mem(){
new Mem();
}

}