单例设计模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
1 实现步骤
1、构造方法私有化
2、声明一个本类对象
3、给外部提供一个静态方法获取对象实例
2两种实现方式:
1、饿汉式
2、懒汉式
2.1 饿汉式
饿汉式:在类被加载后,对象被创建,到程序结束后释放
// 饿汉式:占用内存的时间长,提高效率
class Singleton1{
private Singleton1(){}
private static Singleton1 s= new Singleton1();
public static Singleton1 getInstance(){return s;}
public void print(){
System.out.println("测试方法1");
}
}
2.2 懒汉式
懒汉式:在第一次调用getInstance方法是,对象被创建,到程序结束后释放
// 懒汉式:占用内存的时间短,效率稍低
// 多线程访问是会右安全问题
class Singleton2{
private Singleton2(){}
private static Singleton2 s;
public static Singleton2 getInstance() {
if (s == null)s = new Singleton2();
return s;
}
public void print(){
System.out.println("测试方法2");
}
}