通过序列号来破坏单例模式
饿汉式为例
实现序列号接口
我们可以看到我们通过序列化的方式创建出来了两个不同的对象,导致破坏了原本的单例模式
解决办法,在HungrySingleton类中创建一个方法
在运行一下
我们可以知道这个方法肯定是重载方法
我们可以进入到ObjectInputStream这个类来查看
当类被序列号和反序列化时候返回true
因此当前返回回来就会new一个instance
因此我们知道了序列号和反序列化返回的是一个新的对象
判断是否存在ReadResolve()方法
很明显该方法调用了我们写的readResolveMethod方法
上面调用的也就是下面这个方法
回到原来所以req拿到的是单例下的对象,虽然我们在看源码的时候发现,它内部有instance了一个对象,但是并没有返回,对于我们来说没啥用^_^