云主机怎么安装网站,做物流的网站有哪些,青岛ui设计公司,有什么免费开发网站建设软件本节我们详细讲解10.3节中提到的序列化和反序列化操作。序列化和反序列化是什么当两个进程远程通信时#xff0c;彼此可以发送各种类型的数据。 无论是何种类型的数据#xff0c;都会以二进制序列的形式在网络上传送。比如#xff0c;我们可以通过http协议发送字符串信息彼此可以发送各种类型的数据。 无论是何种类型的数据都会以二进制序列的形式在网络上传送。比如我们可以通过http协议发送字符串信息我们也可以在网络上直接发送JAVA对象。发送方需要把这个Java对象转换为字节序列才能在网络上传送接收方则需要把字节序列再恢复为Java对象。把Java对象转换为字节序列的过程称为对象的序列化。把字节序列恢复为Java对象的过程称为对象的反序列化。 对象序列化的作用有如下两种持久化 把对象的字节序列永久地保存到硬盘上通常存放在一个文件中比如休眠的实现。以后服务器session管理hibernate将对象持久化实现。网络通信在网络上传送对象的字节序列。比如服务器之间的数据通信对象传递。序列化涉及的类和接口ObjectOutputStream代表对象输出流它的writeObject(Object obj)方法可对参数指定的obj对象进行序列化把得到的字节序列写到一个目标输出流中。ObjectInputStream代表对象输入流它的readObject()方法从一个源输入流中读取字节序列再把它们反序列化为一个对象并将其返回。只有实现了Serializable接口的类的对象才能被序列化。 Serializable接口是空接口只起到标记作用。序列化/反序列化的步骤和实例【示例1】将类Person的实例进行序列化和反序列化import java.io.*; class Person implements Serializable { // Person类实现Serializable接口 int age; boolean isMan; String name; public Person(int age, boolean isMan, String name) { super(); this.age age; this.isMan isMan; this.name name; }} public class TestSerializable { public static void main(String[] args) throws IOException, ClassNotFoundException { //限于篇幅没有按照try-catch-finally的//方式规范的进行流的关闭操作。实际工作中一定按照前面所述的标准方式关闭流。 //通过ObjectOutputStream将Person对象的数据写入到文件中即序列化。 Person person new Person(18, true, 高淇); FileOutputStream fos null; ObjectOutputStream oos null; // 序列化 fos new FileOutputStream(d:/c.txt); oos new ObjectOutputStream(fos); oos.writeObject(person); oos.flush(); oos.close(); fos.close(); //通过ObjectInputStream将文件中二进制数据反序列化成Person对象 ObjectInputStream ois null; FileInputStream fis null; // 反序列化 fis new FileInputStream(d:/c.txt); ois new ObjectInputStream(fis); Person p (Person) ois.readObject(); System.out.println(p.name); fis.close(); ois.close(); }}「全栈Java笔记」是一部能帮大家从零到一成长为全栈Java工程师系列笔记。笔者江湖人称 Mr. G10年Java研发经验曾在神州数码、航天院某所研发中心从事软件设计及研发工作从小白逐渐做到工程师、高级工程师、架构师。精通Java平台软件开发精通JAVAEE熟悉各种流行开发框架。 笔记包含从浅入深的六大部分 A-Java入门阶段 B-数据库从入门到精通 C-手刃移动前端和Web前端 D-J2EE从了解到实战 E-Java高级框架精解 F-Linux和Hadoop 转载于:https://blog.51cto.com/javanew/1944276