小记:在学习深度学习过程中,忙里偷闲学习一点java的东西,防止自己找不到工作。本次学习是的Java的单列模式。
单例模式存在三个优点:
1 在内存中只有一个对象,节省内存空间
2 避免频繁的创建销毁对象,提高性能
3 避免对共享资源的多重占用
当然也存在缺点:
1 比较难扩展
2 如果实列化后的对象长期不利用 系统默认为垃圾进行回收 造成对象状态的丢失
package com.company;
//速度快 占用空间大 饿汉式
public class SingletonOne {
//1、创建对象私有构造
private SingletonOne(){
}
//2、创建该类型的私有静态实例
private static SingletonOne instance = new SingletonOne();
//3、创建公有静态方法返回静态实例
public static SingletonOne getInstance(){
return instance;
}
}
package com.company;
//懒汉式 :类内实例对象 创建时并不直接初始化 用时间换空间 存在线程风险
public class SingletonTwo {
private SingletonTwo(){
}
private static SingletonTwo instance = null;
public static SingletonTwo getInstance(){
if(instance ==null)
instance = new SingletonTwo();
return instance;
}
}