[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();
}
}