饿汉式单例
/*
* 一来就生成对象,饿汉式
* 优点:1 安全
* 缺点:1 项目启动会占内存,会增加启动的时间
*/
public class Singleton_h {
//1构造器私有
private Singleton_h() {
}
//2静态的实例指向自身
private static Singleton_h s = new Singleton_h();
//3公共的方法暴露这个实例
public static Singleton_h getInstance() {
return s;
}
}
懒汉式单例
/*
* 懒汉式单例
* 优点:延迟创建实例,需要再创建
* 缺点:是有线程安全问题的单例,后面多线程会修复这个程序
*/
public class Singleton_l {
//1 私有的构造器
private Singleton_l() {
}
//2私有的实例变量
private static Singleton_l s;
//3一个公共的静态的方法暴露实例
public static Singleton_l getInstance() {
//判断没有实例
if(s == null) {
//创建一个单例对象
s = new Singleton_l();
}
return s;
}
}