谈谈J2SE中的序列化之当序列化遭遇继承

j2se|继承

  运行结果证明了这种方法是正确的。在此处我们用到了writeObject/ readObject方法,这对方法如果存在的话,序列化时就会被调用,以代替默认的行为(以后还要探讨,先了解这么多)。我们在序列化时,首先调用了ObjectOutputStream的defaultWriteObject,它使用默认的序列化行为,然后序列化父类的域;反序列化的时候也一样。

  归纳一下:

  目的 行为

  为一个实现Serializable接口的父类,编写一个能够序列化的子类 子类将自动的实现序列化

  为一个没有实现Serializable接口的父类,编写一个能够序列化的子类 1, 父类要有一个无参的constructor;2, 子类要先序列化自身,然后子类要负责序列化父类的域

时间: 2024-09-15 21:57:26

谈谈J2SE中的序列化之当序列化遭遇继承的相关文章

谈谈J2SE中的序列化(三)

何时接受默认的java序列化行为首先要了解java默认的序列化行为,java将一切关于对象的信息都保存了下了,也就是说,有些时候那些不需要保存的也被保存了下来.一般情况下,我们仅仅需要保存逻辑数据就可以了.不需要保存的数据我们可以用关键字transient标出.以下是一个例子:import java.io.*;public class Serial implements Serializable { int company_id; String company_addr; transient b

谈谈J2SE中的序列化(二)

当序列化遇到继承-当一个父类实现Serializable接口后,他的子类都将自动的实现序列化.以下验证了这一点:package Serial;import java.io.Serializable;public class SuperC implements Serializable {//父类实现了序列化 int supervalue; public SuperC(int supervalue) { this.supervalue = supervalue; } public String t

在 WCF 中使用高效的 BinaryFormatter 序列化

本文将定义一个 WCF 终结点行为扩展,以在 WCF 中使用更高效的 BinaryFormatter 进行二进制序列化,并实现对是否使用传统二进制序列化功能的可配置. 介绍 实现步骤 使用方法 效果   介绍 在 OEA 框架中,是使用 WCF 作为数据传输框架.但是使用 WCF 内部的二进制序列化,序列化后的数据大小,要比使用传统的 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter 类进行序列化后的数据大小要大得多.作

Asp.Net Web API 2第十三课——ASP.NET Web API中的JSON和XML序列化

原文:Asp.Net Web API 2第十三课--ASP.NET Web API中的JSON和XML序列化 前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文描述ASP.NET Web API中的JSON和XML格式化器. 在ASP.NET Web API中,媒体类型格式化器(Media-type Formatter)是一种能够做以下工作的对象: 从HTTP消息体读取

【ASP.NET Web API教程】6.2 ASP.NET Web API中的JSON和XML序列化

原文:[ASP.NET Web API教程]6.2 ASP.NET Web API中的JSON和XML序列化 谨以此文感谢关注此系列文章的园友!前段时间本以为此系列文章已没多少人关注,而不打算继续下去了.因为文章贴出来之后,看的人似乎不多,也很少有人对这些文章发表评论,而且几乎无人给予"推荐".但前几天有人询问为何很久没有更新,这让我感觉把这文章翻译出来还是有价值的.为此,本人打算将此工作继续下去.这些关于Web API的技术文章均由微软专业人员撰写,虽然文章作为博客帖子而写得比较简单

对象序列化存放-C# 序列化的对象 如何能存放到数据库中?

问题描述 C# 序列化的对象 如何能存放到数据库中? 我声明一个可序列化的对象 ,如何能讲对象存到数据库的字段中?存放后怎么读? 解决方案 参考:http://wenku.baidu.com/link?url=cIlCf5XteiSXDPFFX7mEJyf7uCBuy1I_UxksFGcfd7AKRrSLdPYv5NHLZtoyhQCc67Nl2bq9rRrrsP5Lq7UiTtgR1ESHL9mlTawT0t8jULC http://blog.csdn.net/chenbin520/artic

十五天精通WCF——第十二天 说说wcf中的那几种序列化

原文:十五天精通WCF--第十二天 说说wcf中的那几种序列化 我们都知道wcf是由信道栈组成的,在我们传输的参数走到传输信道层之前,先需要经过序列化的过程,也就是将参数序列化为message,这篇 我们就来说说这里的序列化,蛮有意思的,可能初学者也明白,在wcf中默认的序列化是DataContractSerializer,确实是这样,不过wcf在信道中 其实不仅仅支持DataContractSerializer,它还支持其他类型的序列化,比如XmlSerializer,NetDataContr

高手来啊!怎么把一个非序列化的对象序列化然后保存到SESSION中!最好是C#代码!先谢谢大家了!

问题描述 高手来啊!怎么把一个非序列化的对象序列化然后保存到SESSION中!最好是C#代码!先谢谢大家了! 解决方案 解决方案二:既然是非序列化的,那么就不能通过序列化来处理对象,如果一定要存到Session中,可以把其主要的属性或字段存到Session中,等需要使用对象的时候,使用New建立新的对象,然后把Session中的值再设置到新的对象中,以此来使用对象.解决方案三:序列化对象了,你就得到一个保存文件地址,然后在Session里面象保存字符串那样保存这个地址就行了.在需要的地方载入在个

PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析_php技巧

本文实例讲述了PHP中SERIALIZE和JSON的序列化与反序列化操作区别.分享给大家供大家参考,具体如下: PHP中SERIALIZE和JSON序列化与反序列化区别是什么呢,对于这个问题我们可以和小编一起来看看,具体的操作细节如下所示. 在PHP中,serialize和json两种方式对一个对象或数组进行序列化或反序列化有什么区别呢? 假设一个对象和一个数组: $web = new stdClass; $web->site = 'tantengvip'; $web->owner = 'tu