Java单例模式的5种实现方法
- 饿汉
- 懒汉-(线程安全)
- 双重校验锁
- 静态内部类
- 枚举
Java单例模式的5种实现方法
饿汉
类加载的时候就创建了实例
优点:类加载的时候创建一次实例,避免了多线程同步问题
缺点:即使单例没被用到也会创建,浪费内存
1 | public class Singleton { |
懒汉-(线程安全)
缺点:性能问题,添加了synchronized的函数比一般方法慢得多,若多次调用getInstance,则累积的性能损耗特别大。
1 | public class Singleton { |
双重校验锁
1 | public class Singleton { |
静态内部类
1 | public class StaticSingleton { |
枚举
调用方式:Singleton.INSTANCE.getInstance()
1 | class Resource{ |
GitHub IssuesGitHub Discussions