Serializable是一个空接口,如何实现序列化

Serializable接口的定义:

  public interface Serializable{}

   Serializable 接口之所以定义为空,是因为它只起到了一个标识的作用,告诉程序实现了它的对象是可以被序列化的,但真正序列化和反序列化的操作并不需要它来完成。

  static和transient修饰的字段不能序列化

原文地址:https://www.cnblogs.com/enhance/p/11099309.html

时间: 2024-08-01 12:10:14

Serializable是一个空接口,如何实现序列化的相关文章

Java Serializable:明明就一个空的接口嘛

对于 Java 的序列化,我一直停留在最浅显的认知上——把那个要序列化的类实现 Serializbale 接口就可以了.我不愿意做更深入的研究,因为会用就行了嘛. 但随着时间的推移,见到 Serializbale 的次数越来越多,我便对它产生了浓厚的兴趣.是时候花点时间研究研究了. 01.先来点理论 Java 序列化是 JDK 1.1 时引入的一组开创性的特性,用于将 Java 对象转换为字节数组,便于存储或传输.此后,仍然可以将字节数组转换回 Java 对象原有的状态. 序列化的思想是“冻结”

Serializable 指示一个类可以序列化;ICloneable支持克隆,即用与现有实例相同的值创建类的新实例(接口);ISerializable允许对象控制其自己的序列化和反序列化过程(接口)

Serializable : 序列化是指将对象实例的状态存储到存储媒体的过程.在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流.在随后对对象进行反序列化时,将创建出与原对象完全相同的副本. 在 面向对象的环境中实现序列化机制时,必须在易用性和灵活性之间进行一些权衡.只要您对此过程有足够的控制能力,就可以使该过程在很大程度上自动进行.例 如,简单的二进制序列化不能满足需要,或者,由于特定原因需要确定类中那些字段需要序列化. 基本序列化

Serializable接口实现对象序列化

对象序列化就是把一个对象变为二进制的数据量的一种方法,通过对象序列化可以方便地实现对象的传输或存储. class Person2 implements Serializable { private String name; // 声明name属性 private int age; // 声明age属性 public Person2(String name, int age) { // 通过构造设置内容 this.name = name; this.age = age; } public Stri

ZeroMQ接口函数之 :zmq_msg_init - 初始化一个空的ZMQ消息结构

ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq_msg_init zmq_msg_init(3) ØMQ Manual - ØMQ/3.2.5 Name zmq_msg_init - 初始化一个空的ZMQ消息结构 Synopsis int zmq_msg_init (zmq_msg_t *msg); Description zmq_msg_init()函数会将msg参数引用的ZMQ消息对象进行初始化,使其成为一个空消息.在使用zmq_recv()函数接收消息

关于接口、关于序列化

最近工作大量用到接口编程,还有序列化问题,就在网上看了很多的资料,做了一些整理,姑且,称为组合创新吧~~ 感谢被引用的很多作者,谢谢你们无私的分享,后辈才能快速学习. (1)为什么不把所以类都标为可序列化? 之所以需要标记某个类是序列化的,而不是把所有的类都设为可序列化,就是告诉编译器我需要该类能够实现序列化,我甘愿承担该类序列化所带来的信息泄露等风险.就像C中的类型转换,有些需要显示的强转,其实就是个标记,告诉编译器我知道这么做的风险,你别担心!而且有些类序列化是没有意义的,比如Thread,

标志接口,空接口,

标识接口是没有任何方法和属性的接口.标识接口不对实现它的类有任何语义上的要求, 它仅仅表明实现它的类属于一个特定的类型. 标接口在Java语言中有一些很著名的应用,比如java.io.Serializable和java.rmi.Remote等接口便是标识接口. 标识接口,当一个类实现了一个标识接口之后就像是给自己打了个标签. 举个例子来说吧. 猎人用猎枪打猎,猎枪面对的目标是人不开火,猎枪面对的不是人的话就会开火. //表明万事万物的接口 public interface SomeThing {

php 中如何创建一个空对象

// 创建一个空对象 $obj=(object)array(); //假设这是从数据库取内容 $arr=["prod_id"=>103,"prod_name"=>"黑客技术从入门到入狱"]; // 遍历数组,并且填充进对象中 foreach($arr as $k=>$v) $obj->$k=$v;

Java基础-接口中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产。请编写一个java应用程序描述上述的体制现象。 要求如下: (1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中 有个“坚持党的领导”方法:void partyLeader() (2)该应用程序中有一个“国务院”抽象类:StateCouncil,

36.中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产.请编写一个java应用程序描述上述的体制现象. 要求如下: (1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中 有个“坚持党的领导”方法:void partyLeader() (2)该应用程序中有一个“国务院”抽象类:StateCouncil,该抽象类中有个“安 全生产”的抽象方法:abstract void safetyInProduction() (

php的源代码包构建一个空的php扩展。

下载一个php的源代码包,这里使用的是php 4.0.5版,解压后会看到php的根目录下会有README.EXT_SKEL这样一个文件,打开详细阅读了一下,发现了一个非常好用的工具,这个工具可以帮你构建一个空的php扩展,然后你向里面添加相应的代码就可以完成你自己的功能扩展了. 首先转移你的目录到php的目录下的ext目录,如果你只需要一个基本的扩展框架的话,执行下面的命令: ./ext_skel --extname=module_name module_name是你自己可以选择的扩展模块的名字