1.定义:
确保一个类最多只有一个实例,并提供一个全局访问点
2.有几种方式
- 饿汉式(静态常量):在类装载时就实例化,可能造成内存浪费
- 饿汉式(静态代码块)
- 懒汉式(线程不安全):if语句块问题,实际开发中不要使用这种方式
- 懒汉式(线程安全,同步方法):同步效率太低,不推荐使用
- 双重检查 :推荐使用
- 静态内部类:静态内部类会在调用getInstance后加载,且只加载一次;通过JVM来保证线程的安全性,推荐使用
- 枚举:effective Java推荐使用
单元素的枚举类型已经成为实现Singleton的最佳方法
-- 出自 《effective java》