当前位置: 首页 > news >正文

唐山长城网站建设合肥网站设计

唐山长城网站建设,合肥网站设计,四川住房建设和城乡建设厅网站,宝塔装wordpress最近观看effective in java #xff0c;提到单例模式创建过程中#xff0c;如果是要保证该对象是可序列化的#xff0c;需要考虑两点#xff1a;1、继承Serializable接口2、增加readResolve方法比较疑惑的是为什么需要增加这个方法#xff0c;在以往的使用中需要被序列化的…最近观看effective in java 提到单例模式创建过程中如果是要保证该对象是可序列化的需要考虑两点1、继承Serializable接口2、增加readResolve方法比较疑惑的是为什么需要增加这个方法在以往的使用中需要被序列化的场景也不多但是自己确实不明白这个单例对象在反序列化的时候会导致增加一个假冒的对象从而’单例变的也不在单例‘深入到代码细节观察发现ObjectInputStream反序列化会利用ObjectStreamClass序列化描述符创建一个实例1、如果实例不为空2、且描述符内检测到含有readResolve方法3、反序列化中没有异常发生满足以上条件会反射执行readResolve获取实例对象并且和先前的对象作比较不相等用本次的值覆盖先前的返回值不满足以上条件直接返回实例对象完成反序列化ObjectInputStream源码如下(标红部分)private Object readOrdinaryObject(boolean unshared)throws IOException{if (bin.readByte() ! TC_OBJECT) {throw new InternalError();}ObjectStreamClass desc readClassDesc(false);desc.checkDeserialize();Object obj;try {obj desc.isInstantiable() ? desc.newInstance() : null;} catch (Exception ex) {throw (IOException) new InvalidClassException(desc.forClass().getName(),unable to create instance).initCause(ex);}passHandle handles.assign(unshared ? unsharedMarker : obj);ClassNotFoundException resolveEx desc.getResolveException();if (resolveEx ! null) {handles.markException(passHandle, resolveEx);}if (desc.isExternalizable()) {readExternalData((Externalizable) obj, desc);} else {readSerialData(obj, desc);}handles.finish(passHandle);if (obj ! null handles.lookupException(passHandle) null desc.hasReadResolveMethod()){Object rep desc.invokeReadResolve(obj);if (unshared rep.getClass().isArray()) {rep cloneArray(rep);}if (rep ! obj) {handles.setObject(passHandle, obj rep);}}return obj;}-----------------------------------------------------------------------------------------------------------------------测试程序如下package com.tt.st;import java.io.ObjectStreamException;import java.io.Serializable;public class Singleton implements Serializable {/****/private static final long serialVersionUID 2090309963475550553L;private static final Singleton instance new Singleton();private Singleton() {System.out.println(System.currentTimeMillis());}public static Singleton getInstance() {return instance;}private Object readResolve()  throws ObjectStreamException {return instance;}}package com.tt.st;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;public class Main {private static native ClassLoader latestUserDefinedLoader();public static void main(String[] args) throws Exception{// TODO Auto-generated method stubFile file new File(d:\\doc\\ab.out);ObjectOutputStream objectOutputStream new ObjectOutputStream(new FileOutputStream(file));Singleton singleton Singleton.getInstance();System.out.println(first: singleton);objectOutputStream.writeObject(singleton);objectOutputStream.close();ObjectInputStream objectInputStream new ObjectInputStream(new FileInputStream(file));Object object objectInputStream.readObject();System.out.println(second: object);objectInputStream.close();}}
http://www.lebaoying.cn/news/17912.html

相关文章:

  • 商务网站网络环境设计网站设计的流程
  • 绵阳做手机网站百度认证有什么用
  • 养生网站设计重庆工商学校官网
  • 网站建设价格差别什么样的网站
  • 电商网站排行榜做有网被视频网站有哪些
  • 宁波网站建设公司地址天河网站建设平台
  • 用腾讯云做淘宝客网站视频10个企业网站设计欣赏
  • 重庆的电子商务网站上海网站建设软件下载
  • 网站界面尺寸做球服的网站有哪些
  • 山东建设工程执业证书查询网站商城服务是什么软件
  • 3模网站建设wordpress 商品页规格
  • 查询网站的外链给小说网站做编辑
  • 奢侈品网站设计wordpress托管在哪里
  • 天长网站开发网站建设 网络科技公司
  • 网站功能定制合同附近的代理记账公司有哪些
  • 重庆市门户网站制作中国推广网
  • 创新的企业网站建设网站建设中制作页面导航
  • 邹城网站建设多少钱唐山做网站的公司
  • 网站建设怎么设计更加吸引人全椒网站建设
  • 本溪网站建设兼职郑州做网站网站建设费用
  • 网站上的链接怎么做的电商培训心得
  • 月夜影视在线观看免费完整版关键词自动优化工具
  • 网页设计分享网站绍兴网站推广
  • 网站建设费用计入固定资产做360网站优化快
  • 沈阳网站建网站建设公司类型
  • wordpress一步步建企业网站有做挂名法人和股东的网站吗
  • 宁夏电力建设工程公司外部网站建设网站的公司兴田德润可以吗
  • node怎么做网站网站建设方面的书籍推荐
  • 南宁手机建站模板网站备案的用户名是什么
  • 手机免费建站教程赤坎手机网站建设