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;}}
3 回答

qq_花開花謝_0
TA貢獻1835條經(jīng)驗 獲得超7個贊
編譯的時候,不是將靜態(tài)的都編譯好了嗎?那再new一個自己,自己里面又有自己,為什么不會是死循環(huán)呢,我新手,求解~

MM們
TA貢獻1886條經(jīng)驗 獲得超2個贊
1.靜態(tài)變量的初始化.是類加載的時候就初始化了.所以靜態(tài)變量只初始化一次
2.當(dāng)然是共享.的.因為是一個靜態(tài)變量.但是靜態(tài)變量的調(diào)用不應(yīng)該.用obj.value方式調(diào)用.
如果你在eclipse中會報黃.(警告)..正確的調(diào)用方法是Mem.data 就是(類名稱.變量的方式)

慕蓋茨4494581
TA貢獻1850條經(jīng)驗 獲得超11個贊
靜態(tài)變量是被所有的類共享的 所以所有的new出來的Mem實例共享的只有一個公共的data靜態(tài)變量
作為區(qū)別,下面這個例子就會出現(xiàn)死循環(huán)
public class Mem {
public Mem(){
new Mem();
}
}
添加回答
舉報
0/150
提交
取消