设计模式-单例模式

保证一个类里只有一个实例;提供唯一公共访问点,一般在序列化、反序列化过程中、反射、克隆过程中会失效

1.饿汉式加载

2.懒汉式加载

3.双重检测锁

4.内部静态类

双亲委派机制,保证类只能被一个类加载器加载,保证加载同一个类;

5.枚举类

本质上自动转换枚举类里的对象,生产饿汉式;

反射:

反射中可以获得类的构造方法并强制设置为可达,从而产生新的对象;

解决办法:在构造方法里判断非空则返回对象;

序列化反序列化

反序列,找到类时会进行一次实例化;同时通过反射寻找readReslove方法,如果有则再生成一个实例化对象,通过比较两个对象,然后返回;

解决办法:添加 public Object readReslove()返回实例;

克隆:不会调用构造函数,直接从内存里复制一份;

解决办法:重写 protected Object clone()返回实例;

深拷贝、浅拷贝:

clone对象是深拷贝,但是如果对象里面还有引用类型的对象,引用类型的对象就是浅拷贝,只复制地址;

参考

https://blog.youkuaiyun.com/qq_39304851/article/details/115679982
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值