标题:关于java中单例模式的介绍(懒汉模式,饿汉模式)
取消只看楼主
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:39
帖 子:423
专家分:1871
注 册:2018-2-6
结帖率:100%
已结贴  问题点数:20 回复次数:2 
关于java中单例模式的介绍(懒汉模式,饿汉模式)
懒汉模式:创建对象之前会做一非空判断,如果有现成的对象,就不创建新的,没有现成的就创建一个新的。
程序代码:
package com.xiaoa.demo;

/**

 * 懒汉模式

 * 

 * @author niyite

 *

 */
public class LazySingle {
    private static LazySingle newInstance = null;

    private LazySingle() {
    }

    public static LazySingle getnewInstance() {
        if (newInstance == null) {
            newInstance = new LazySingle();
        }
        return newInstance;
    }
}

加锁懒汉模式,在创建新对象之前加了一个同步锁,避免了多线程情况下的线程安全问题。
程序代码:
package com.xiaoa.demo;

/**

 * 加锁懒汉模式

 * 

 * @author niyite

 *

 */
public class SyncLazySingle {
    private static SyncLazySingle newInstance = null;

    private SyncLazySingle() {
    }

    public static SyncLazySingle getnewInstance() {
        if (newInstance == null) {
            synchronized (SyncLazySingle.class) {
               if (newInstance == null) newInstance = new SyncLazySingle();
            }
        }
        return newInstance;
    }
}

 饿汉模式:操作最简单
程序代码:
package com.xiaoa.demo;

/**

 * 饿汉模式

 * 

 * @author niyite

 *

 */
public class HungrySingle {
    private static final HungrySingle newInstance = new HungrySingle();

    public HungrySingle() {
    }

    public static HungrySingle getnewInstance() {
        return newInstance;
    }

}


[此贴子已经被作者于2018-4-19 08:29编辑过]

搜索更多相关主题的帖子: 模式 public private static null 
2018-04-17 19:37
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:39
帖 子:423
专家分:1871
注 册:2018-2-6
得分:0 
回复 3楼 林月儿
眼神真好!感谢!!
已经修改,应该再没问题了吧....

假如人生没有梦想,和咸鱼有什么区别!
2018-04-19 08:31
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:39
帖 子:423
专家分:1871
注 册:2018-2-6
得分:0 
回复 楼主 疯狂的小a
有区别的,单例模式是表示单例的,是一种思想。比如如果一个对象很复杂,占用资源太多,就要求是单例的。

假如人生没有梦想,和咸鱼有什么区别!
2018-04-19 08:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-486148-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.262507 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved