一、什么是单例模式?
单例模式是很常见的一种设计模式,确保某个类只有一个实例,而且它能够自行实例化并且向整个系统提供这个实例。它的作用是在一个jvm中只能存在一个实例,保证对象的唯一性。它的应用场景有很多,像servlet、spring、struts2、springMVC、连接池、线程池、枚举、常量等都是使用的单例模式。
二、单例模式的特点?
1、单例类只能实例化一次;
2、单例类必须自己创建自己的唯一实例;
3、单例类必须能够给其他对象提供这一实例。
三、单例模式的优缺点?
优点:
1.内存里只有一个实例,减少了内存的开支,尤其是频繁的创建和销毁实例。
2.避免对资源的多重占用。
缺点:
1.没有接口,不能继承,与单一职责原则冲突。
2.线程安全问题。
四、单例模式的创建方式?
1、饿汉式(立即加载)
public class SingleObject { //创建SingleObject的一个对象,类初始化时,会立即加载该对象,线程天生安全,调用效率高 private static SingleObject instance=new SingleObject(); //让构造函数为private,这样该类就不会被实例化 private SingleObject(){ System.out.println("SingleObject被初始化"); } //获取唯一可用的对象 public static SingleObject getInstance(){ return instance; } //测试 public static void main(String [] args){ SingleObject singleObject1 =SingleObject.getInstance(); SingleObject singleObject2=SingleObject.getInstance(); //就该结果的论述:如果为trueÿ