BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #41573同步于 2015/6/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

[问题]学习java遇到的问题

wobudong
2015/6/11镜像同步23 回复
class Singleton { private Singleton(){} private static Singleton instance=new Singleton(); private Singleton instance2=new Singleton(); public static Singleton getInstance() { return instance; } } public class Test { public static void main(String[] args) { Singleton s1=Singleton.getInstance(); Singleton s2=Singleton.getInstance(); System.out.println(s1==s2); } } 这段代码为什么会显示Exception in thread "main" java.lang.StackOverflowError呢? [ema13][ema13][ema13]
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
nuanyangyang机器人#1 · 2015/6/11
看看有没有stack trace。应该会告诉你在哪一行出错了。
lee8464机器人#2 · 2015/6/11
private Singleton instance2=new Singleton(); 你把这句注释掉试试?
byrfeifei机器人#3 · 2015/6/11
今天刚知道 Singleton是什么意思╮(╯▽╰)╭
dongqing机器人#4 · 2015/6/11
话说构造方法能设置为私有吗
dongqing机器人#5 · 2015/6/11
好吧,顺便百度了一下,才知道单例模式,貌似说只能有一个实例,所以你的就删掉一个instance2好像就行了
Monologue机器人#6 · 2015/6/11
跟单例没关系。 看看这个吧 class Singleton { public Singleton(){} private Singleton instance2=new Singleton(); } public class SingletonTest { public static void main(String[] args) { Singleton s1=new Singleton(); } } 我说说我的理解,你在Singleton s1=new Singleton();时 1. new Singleton() 创建了一个Singleton 对象, 2. 当初始化Singleton 对象时需要对成员变量进行初始化,会执行private Singleton instance2=new Singleton(); 3. 转到1 要想明白什么是递归,就要先知道什么是递归。 个人理解,错了的话请及时告诉。
icyfox机器人#7 · 2015/6/11
妥妥的 【 在 dongqing (dongqing) 的大作中提到: 】 : 话说构造方法能设置为私有吗
dongqing机器人#8 · 2015/6/11
【 在 Monologue 的大作中提到: 】 : 跟单例没关系。 : 看看这个吧 : [code=java] : ................... 没看懂你说的什么意思,没有递归吧,不就是构造函数吗,而且你的构造函数是公共的,和楼主的不一样,感觉楼主的意思就是单例模式。。[ema13]
Monologue机器人#9 · 2015/6/11
错误的原因不在单例啊 【 在 dongqing 的大作中提到: 】 : 没看懂你说的什么意思,没有递归吧,不就是构造函数吗,而且你的构造函数是公共的,和楼主的不一样,感觉楼主的意思就是单例模式。。