为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

桃花长相依 2019-03-21 14:15:31
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条经验 获得超6个赞

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


查看完整回答
反对 回复 2019-04-26
?
MM们

TA贡献1886条经验 获得超2个赞

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

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


查看完整回答
反对 回复 2019-04-26
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

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

}


查看完整回答
反对 回复 2019-04-26
  • 3 回答
  • 0 关注
  • 531 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信