概念:
Java中单例模式是一种常见的设计模式,单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
单例模式有以下特点:
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
上面方式它是线程不安全的,并发环境下很可能出现多个Singleton实例,所以需要进行改造
第一种方式,需要对getInstance这个方法改造,保证了单例的线程安全
第二种方法
类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以天生是线程安全的。
Java中单例模式是一种常见的设计模式,单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
单例模式有以下特点:
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
//在第一次调用的时候实例化自己 ,非线程安全
public class Singleton {
private Singleton() {}
private static Singleton single=null;
//静态工厂方法
public static Singleton getInstance() {
if (single == null) {
single = new Singleton();
}
return single;
}
}
上面方式它是线程不安全的,并发环境下很可能出现多个Singleton实例,所以需要进行改造
第一种方式,需要对getInstance这个方法改造,保证了单例的线程安全
public static synchronized Singleton getInstance() {
if (single == null) {
single = new Singleton();
}
return single;
}
第二种方法
类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以天生是线程安全的。
public class Singleton {
private Singleton() {}
private static final Singleton single = new Singleton();
//静态工厂方法
public static Singleton getInstance() {
return single;
}
}
本文详细介绍了Java中单例模式的概念及其实现方式。探讨了单例模式的特点,并提供了两种实现方法:一种是非线程安全的懒汉式实现,另一种是线程安全且在类加载时就完成实例化的饿汉式实现。
2391

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



