java什么是序列化和反序列化,什么是java序列化,如何实现序列化

  java什么是序列化和反序列化,什么是java序列化,如何实现序列化

  

  如何解决写爬虫IP受阻的问题?立即使用。

  简要解释:

  序列化是一种用于处理对象流的机制,即流式传输对象的内容。您可以读写流式对象,也可以在网络之间传输流式对象。

  序列化是为了解决读写对象流带来的问题。序列化的实现:实现要序列化的类的Serializable接口,该接口没有方法可实现。实现Serializable只是为了标记对象可以序列化,然后用一个输出流(比如FileOutputStream)构造一个ObjectOutputStream对象。然后用ObjectOutputStream对象的writeObject(Object obj)方法写出带有obj参数的对象(即保存其状态),再用输入流还原。

  详细解释:

  当两个进程进行远程通信时,它们可以互相发送各种类型的数据。无论是什么类型的数据,都会以二进制序列的形式在网络上传输。发送方需要将这个Java对象转换成字节序列,然后才能在网络上传输;接收者需要将字节序列恢复到一个Java对象。

  只有支持java.io.Serializable接口的对象才能写入流中。对每个可序列化对象的类进行编码,包括类名和类签名、对象的字段值和数组值,以及从初始对象引用的所有其他对象的闭包。

  1.概念

  序列化:将Java对象转换成字节序列的过程。

  反序列化:将字节序列恢复到Java对象的过程。

  2.用途

  对象的序列化有两个主要目的:

  (1)对象的字节序列被永久保存到硬盘上,通常存储在一个文件中;

  (2)在网络上传输对象的字节序列。

  3.对象序列化

  序列化API

  Java.io.ObjectOutputStream表示对象输出流,其writeObject(Object obj)方法可以序列化参数指定的obj对象,并将字节序列写入目标输出流。只有实现可序列化和可外部化接口的类的对象才能被序列化。

  Java.io.ObjectInputStream表示对象输入流,其readObject()方法从源输入流中读取字节序列,将它们反序列化为对象,然后返回它们。

  代码示例

  导入Java . io . *;

  导入Java . util . date;

  公共类ObjectSaver {

  公共静态void main(String[] args)引发异常{

  /*其中D:\\objectFile.obj表示存储序列化对象的文件*/

  //序列化对象

  object output stream out=new object output stream(new file output stream( D:\ \ object file . obj );

  客户客户=新客户(只是湿透了,24);

  Out.writeObject (Hello!);//写入文字常量

  out . writeobject(new Date());//编写一个匿名日期对象

  out.writeObject(客户);//编写客户对象

  out . close();

  //反序列化该对象

  ObjectInputStream in=new ObjectInputStream(new file inputstream( D:\ \ object file . obj );

  system . out . println( obj 1 (String)in . read object());//读取文字常量

  system . out . println( obj 2 (Date)in . read object());//读取匿名日期对象

  客户obj3=(客户)in . read object();//读取客户对象

  system . out . println( obj 3 obj 3);

  in . close();

  }

  }

  客户类实现可序列化{

  私有字符串名称;

  私人年龄;

  公共客户(字符串名称,整数){

  this.name=name

  this.age=年龄;

  }

  公共字符串toString() {

  return name= name ,age= age

  }

  }执行结果:

  4.说明

  阅读对象的顺序要和书写的顺序一致。

  对象的默认序列化机制写:对象的类、类签名、非瞬态和非静态字段的值。

  我们,大量免费的Java入门教程,欢迎在线学习!这就是java序列化的细节。请多关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: