Java单例模式中为什么静态内部类可以实现,而非静态内部类不可以实现
答案:2 悬赏:70 手机版
解决时间 2021-02-23 17:10
- 提问者网友:别再叽里呱啦
- 2021-02-23 00:19
Java单例模式中为什么静态内部类可以实现,而非静态内部类不可以实现
最佳答案
- 五星知识达人网友:像个废品
- 2021-02-23 00:54
单例模式,首先是单例,也就是只有一个实例,要保证只有一个,那么肯定不能在外面new,实例只能属于类所有。如果内部类不是静态的,外部调用时又不能用new获取到实例,当然只能用静态来实现,通过类名来获取实例
全部回答
- 1楼网友:深街酒徒
- 2021-02-23 01:24
static singleton instance = new singleton();
static类型的成员变量,只会在新建类的对象时被执行一次。
所以static singleton instance = new singleton(); 只有在第一次调用时,被new一次。之后获取的都是第一次执行的对象。所以称之为单例。
也可以使用老的写法,比较清晰一些。
class abc {
private static abc instance;
private abc() {}
public abc getinstance() {
if (instance==null)
instance = new abc();
return instance;
}
}
这样写法的缺点是效率不如
class abc {
private static abc instance= new abc();
private abc() {}
public abc getinstance() {
return instance;
}
}
这样写法高。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯