关于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编辑过]









感谢!!


