一、序列化和反序列化

对象的序列化:把对象转化为字节序列化的过程。
对象的反序列化:把字节序列化恢复为对象的过程。
对象序列化的用途
1、把对象永久的保存到硬盘上,通常存放在一个文件中。
2、在网络上传出对象的字节序列。
 
序列化的实现
        只有实现了SerializableExternalizable接口的类的对象才能被序列化。Externalizable接口继承自 Serializable接口,实现Externalizable接口的类完全由自身来控制序列化的行为,而仅实现Serializable接口的类可以 采用默认的序列化方式 。

二、序列化和反序列化示例

1、实现Serializable
Books.java
 1 package com.serialize.test;
 2 
 3 import java.io.*;
 4 
 5 /**
 6  * Created by Administrator on 2018/3/15.
 7  */
 8 public class Books implements Serializable {
 9     /**
10      * 序列化版本号
11      */
12     private static final long serialVersionUID = 1L;
13     private int bookId;
14     private String bookName;
15     private double bookPrice;
16     private String publish;
17     private transient int num;
18     @Override
19     public String toString() {
20         String str = "bookId-->" + bookId + "\nbookName-->"
21                 + bookName + "\nbookPrice-->" + bookPrice + "\npublish-->" + publish + "\nnum-->" + num;
22         return str;
23     }
24     public int getNum() {
25         return num;
26     }
27     public void setNum(int num) {
28         this.num = num;
29     }
30     public int getBookId() {
31         return bookId;
32     }
33     public void setBookId(int bookId) {
34         this.bookId = bookId;
35     }
36     public String getBookName() {
37         return bookName;
38     }
39     public void setBookName(String bookName) {
40         this.bookName = bookName;
41     }
42     public double getBookPrice() {
43         return bookPrice;
44     }
45     public void setBookPrice(double bookPrice) {
46         this.bookPrice = bookPrice;
47     }
48     public String getPublish() {
49         return publish;
50     }
51     public void setPublish(String publish) {
52         this.publish = publish;
53     }
54 }
View Code

 

相关文章: