如何运用8种Java单例模式写法实现高效且安全的单例设计?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2274个文字,预计阅读时间需要10分钟。
示例:Singleton模式,是指仅被实例化一次的类。例如,单例模式+饿汉模式+public class SingletonHungry {+private final static SingletonHungry INSTANCE=new SingletonHungry();+private SingletonHungry() {+“+}+}+}
单例:Singleton,是指仅仅被实例化一次的类。
饿汉单例设计模式
一、饿汉设计模式
public class SingletonHungry { private final static SingletonHungry INSTANCE = new SingletonHungry(); private SingletonHungry() { } public static SingletonHungry getInstance() { return INSTANCE; } }
因为单例对象一开始就初始化了,不会出现线程安全的问题。
PS:因为我们只需要初始化1次,所以给INSTANCE加了final关键字,表明初始化1次后不再允许初始化。
懒汉单例设计模式
二、简单懒汉设计模式
由于饿汉模式一开始就初始化好了,但如果一直没有被使用到的话,是会浪费珍贵的内存资源的,所以引出了懒汉模式。
懒汉:首次使用时才会去实例化对象。
本文共计2274个文字,预计阅读时间需要10分钟。
示例:Singleton模式,是指仅被实例化一次的类。例如,单例模式+饿汉模式+public class SingletonHungry {+private final static SingletonHungry INSTANCE=new SingletonHungry();+private SingletonHungry() {+“+}+}+}
单例:Singleton,是指仅仅被实例化一次的类。
饿汉单例设计模式
一、饿汉设计模式
public class SingletonHungry { private final static SingletonHungry INSTANCE = new SingletonHungry(); private SingletonHungry() { } public static SingletonHungry getInstance() { return INSTANCE; } }
因为单例对象一开始就初始化了,不会出现线程安全的问题。
PS:因为我们只需要初始化1次,所以给INSTANCE加了final关键字,表明初始化1次后不再允许初始化。
懒汉单例设计模式
二、简单懒汉设计模式
由于饿汉模式一开始就初始化好了,但如果一直没有被使用到的话,是会浪费珍贵的内存资源的,所以引出了懒汉模式。
懒汉:首次使用时才会去实例化对象。

