当前位置:网站首页 > 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; 

} }

  • 上一篇: edg夺冠java教程
  • 下一篇: java教程2023
  • 版权声明


    相关文章:

  • edg夺冠java教程2026-02-17 20:02:06
  • java500教程2026-02-17 20:02:06
  • sa跳搭教程java2026-02-17 20:02:06
  • java卡教程2026-02-17 20:02:06
  • java数字代码教程2026-02-17 20:02:06
  • java教程20232026-02-17 20:02:06
  • java教程蒙娜丽宁2026-02-17 20:02:06
  • java n ide 使用教程2026-02-17 20:02:06
  • java程序设计教程第五版2026-02-17 20:02:06
  • 卸载java教程2026-02-17 20:02:06