单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。
单例模式分为:饿汉模式和懒汉模式
1 饿汉模式 ---静态常量(可用)
/**
* 单例模式 --饿汉模式--静态常量(可以用)
* y:在类加载的时候就进行了类的实例化,避免了线程的同步问题
* n:同时,在类加载的时候就进行了实例化,没有达到懒加载的效果,万一之后不用,就会浪费内存
*
*/
public class SingletonTest1 {
private static final SingletonTest1 instance=new SingletonTest1();
private SingletonTest1() {}
public static SingletonTest1 getInstance() {
return instance;
}
}
y:在类加载的时候就进行了类的实例化,避免了线程的同步问题
n:同时,在类加载的时候就进行了实例化,没有达到懒加载的效果,万一之后不用,就会浪费内存
2 饿汉模式 ---静态代码块(可用)
/**
* 单例模式 --饿汉模式--静态代码块的使用(可以用)
* 和静态常量差不多,在类加载的时候加载静态代码块进行实例化
*
*/
public class SingletonTest2 {
private static SingletonTest2 instance=null;
static {
instance=new SingletonTest2();
}
private SingletonTest2() {}
public static SingletonTest2 getInstance() {
return instance;
}
}
和静态常量差不多,在类加载的时候加载静态代码块进行实例化
3