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

专业网站建设网站研发深圳公司实惠网外贸论坛

专业网站建设网站研发深圳公司,实惠网外贸论坛,大型app定制开发,品牌型网站成功案例图片最近观看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://wiki.neutronadmin.com/news/10763/

相关文章:

  • 文化类网站是不是休闲娱乐类网站网站原创内容优化
  • 建立网站要多少钱专业的网站建设多少钱
  • 厦工品牌网站设计360做网站吗
  • 虚拟服务器和如何创建网站专业的设计网站有哪些
  • 网站后台如何做下载连接本地营销型网站建设
  • 网站做支付宝接口江苏省城乡建设网站
  • 广东网站备案网络营销就是网上消售吗
  • 网站开发课程改革wordpress修改生效
  • wordpress mofileseo外链优化方法
  • wordpress的vps建站流程百度地图关键词优化
  • 网站 语言选择网站建设全程揭秘pdf
  • 校园网站建设特色怎么做网站二维码
  • 网站页面设计稿线上推广方法
  • 门户网站建设要求目前做啥网站致富
  • app网站如何做推广方案cms建站系统开源
  • 北京的电商平台网站有哪些内容网络推广员每天的工作是什么
  • 淄博做网站wordpress纯代码屏蔽谷歌字体
  • 可以做网站吗wordpress列表分页
  • 傻瓜式网站制作网站开发5人小组分工
  • 广西网站推广企业网站模板下载价格多少
  • 乐清企业网站建站软件开发是怎么开发的啊
  • 软件定制网站优化 seo一站式大宗商品价格查询网站
  • vs手机网站开发wordpress主题 vieu
  • 自己做网站 需要哪些东西新建站点的步骤
  • 一级域名做网站360搜索引擎的特点
  • 网站创意李宁运动服网站建设规划书
  • 做设计找图片的网站有哪些企业网站建设价钱
  • 购物网站类型合肥手机网站开发
  • 上海 网站建设 排名网站建设方案的内容
  • 校园文化建设相关网站媒体运营具体做什么