饿汉式单例
/*
* 一来就生成对象,饿汉式
* 优点: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;
}
}
本文介绍了Java中的两种单例模式实现:饿汉式和懒汉式。饿汉式在类加载时即创建单例对象,确保线程安全但占用内存;懒汉式则在首次调用时才创建,延迟加载但存在线程安全问题。通过对比分析,有助于理解单例模式的优缺点和适用场景。
943

被折叠的 条评论
为什么被折叠?



