1.设计模式概述
23种模式:
2.单例模式概述:
3.饿汉模式vs懒汉模式
3.1饿汉式(空间换时间)
//饿汉式:创建对象实例的时候直接初始化
public class SingletonOne {
//1.创建类私有构造
private SingletonOne(){
}
//2.创建该类型的私有静态实例
private static SingletonOne instance=new SingletonOne();
//创建公有静态方法返回静态实例对象
public static SingletonOne getInstance(){
return instance;
}
}
3.2懒汉式(时间换空间)
//懒汉式:类种实例对象时并不初始化,直到第一次调用get方法时,才完成初始化操作
public class SingletonTwo {
//1.创建类私有构造
private SingletonTwo(){
}
//2.创建该类型的私有静态实例
private static SingletonTwo instance=null;
//创建公有静态方法返回静态实例对象
public static SingletonTwo getInstance(){
if(instance==null){
instance=new SingletonTwo();
}
return instance;
}
}
测试:
public class test {
public static void main(String[] args) {
SingletonOne one=SingletonOne.getInstance();
SingletonOne two=SingletonOne.getInstance();
//==对于基本类型比较的是数据值,对于引用类型比较的是地址值
System.out.println(one==two);
System.out.println("--------------------");
SingletonTwo one1=SingletonTwo.getInstance();
SingletonTwo two1=SingletonTwo.getInstance();
System.out.println(one==two);
}
}
3.3pk
解决方法: