单例模式之内部类延迟加载问题

365天天好心情 2014-02-23 02:10:15
package single;

/**
* 内部类延迟加载 最佳方式
*
* @author Sunnykong
*
*/
public class Sinlge4 {
private static class SingleHolder {
private final static Sinlge4 instance = new Sinlge4();
}

public static final Sinlge4 getInstance() {
return SingleHolder.instance;
}

public static void main(String[] args) {
Sinlge4 s = Sinlge4.getInstance();
Sinlge4 s1 = Sinlge4.getInstance();
Sinlge4 s2 = Sinlge4.getInstance();
}
}
代码如上,在网上看了下很多说通过内部类延迟加载是一种最佳的方式,内部类如何实现单例的呢?我的理解是main中每次调用getInstance时,都会创建一个实例,这样就创建了三个实例了,debug了下,也的确是这样的
...全文
180 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
别闹腰不好 2014-02-24
  • 打赏
  • 举报
回复
你可以直接用==好比较这3个对象返回的是true,说明它们指向同一地址。说明是同一个对象
别闹腰不好 2014-02-24
  • 打赏
  • 举报
回复
getInstance 方法只是提供一个对象,虽然运行了3次 ,但是返回的是同给一个对象, 静态的变量只会被加载一次。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧