当前位置:网站首页 > Java教程 > 正文

java单体教程



反序列化机制激活成功教程单例模式(枚举除外):

public class BreakSingleton{ public static void main(String[] args) throws Exception{ //先根据单例模式创建对象(单例模式所以s1,s2是一样的) Singleton s1=Singleton.getInstance(); Singleton s2=Singleton.getInstance(); //将s1写入本地某个路径 FileOutputStream fos=new FileOutputStream("本地某个路径下文件"); ObjectOutputStream oos=new ObjectOutputStream(fos); oos.writeObject(s1); oos.close(); fos.close(); //从本地某个路径读取写入的对象 ObjectInputStream ois=new ObjectInputStream(new FileInputStream("和上面的本地参数路径相同")); Singleton s3=(Singleton) ois.readObject(); System.out.println(s1); System.out.println(s2); System.out.println(s3);//s3是一个新对象 } }

如何避免实现序列化单例模式的漏洞:

class Singleton implements Serializable{ private static final Singleton singleton = new Singleton(); private Singleton() { } public static Singleton getInstance(){ return singleton; } //反序列化定义该方法,则不需要创建新对象 private Object readResolve() throws ObjectStreamException{ return singleton; } }

版权声明


相关文章:

  • java傻瓜安装教程2025-01-27 09:02:00
  • java教程421集2025-01-27 09:02:00
  • java reflections 教程2025-01-27 09:02:00
  • java模组导入教程2025-01-27 09:02:00
  • 盾构机java教程2025-01-27 09:02:00
  • java入口设置教程2025-01-27 09:02:00
  • java510教程2025-01-27 09:02:00
  • java反码补码教程2025-01-27 09:02:00
  • java封装视频教程2025-01-27 09:02:00
  • java爬虫教程 Demo2025-01-27 09:02:00