概念:所谓类的单例设计模式,就是采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法
两种单例模式:饿汉式和懒汉式
饿汉式单例模式实现步骤:
1)构造器私有化 => 防止直接new
2)类的内部创建静态私有对象
3)向外暴露一个静态的公共方法
代码实现:
验证是否为同一个实例对象:
结果为:
懒汉式单例模式实现步骤(不考虑线程安全):
1)构造器私有化
2)定义一个静态属性对象
3)提供一个public的static方法,可以返回一个实例对象
代码实现:
验证是否为同一个实例对象:
结果为:
饿汉式和懒汉式的区别:
1、饿汉式在类加载的时候就生成了对象实例,而懒汉式需要显示调用类静态方法才会生成对象实例
2、饿汉式不存在线程安全的问题,懒汉式存在线程安全问题
3、饿汉式存在浪费资源的可能
4、java.lang.Runtime就是一个单例模式,且是饿汉式