Java 序列化

简介: Java 序列化

Java 序列化的过程是与平台无关的,也就是说一个 Java 对象可以在一个平台上序列化之后传输到另外一个平台上进行反序列化。


 需要进行序列化的 Java 类必须实现一个特殊的标记接口——**Serializable**。只有实现了 `java.io.Serializable` 接口的类可以进行序列化/反序列化,其中 `java.io.Serializable` 接口是一个标记接口,标记接口不含有任何成员和方法,标记接口的作用是标记一组类,这些类都具有相同的特定的功能,常见的标记接口还有 Cloneable。


实现 Serializable 接口


一个类的对象要想序列化成功,必须满足两个条件:


 (1)该类必须实现 `java.io.Serializable` 对象;


 (2)该类的所有属性必须是可序列化的。声明为 `static` 和 `transient` 类型的成员数据不能被序列化。因为 `static` 代表类的状态,`transient` 代表对象的临时数据。


 详细代码如下所示:

packagecom.xiaowang.java.serializable;
importjava.io.Serializable;
/*** 定义一个Student类,实现 Serializable 接口*/publicclassStudentimplementsSerializable {
/*** 序列化ID*/privatestaticfinallongserialVersionUID=-7037627544448704690L;
privateintid;
privateStringname;
privateintage;
//该属性声明为暂时的,因此不可序列化privatetransientStringsex;
publicStudent() {
super();
    }
publicStudent(intid, Stringname, intage, Stringsex) {
super();
this.id=id;
this.name=name;
this.age=age;
this.sex=sex;
    }
publicintgetId() {
returnid;
    }
publicvoidsetId(intid) {
this.id=id;
    }
publicStringgetName() {
returnname;
    }
publicvoidsetName(Stringname) {
this.name=name;
    }
publicintgetAge() {
returnage;
    }
publicvoidsetAge(intage) {
this.age=age;
    }
publicStringgetSex() {
returnsex;
    }
publicvoidsetSex(Stringsex) {
this.sex=sex;
    }
@OverridepublicStringtoString() {
return"id="+id+", name="+name+", age="+age+", sex="+sex;
    }
相关文章
|
1天前
|
存储 JSON 缓存
Java中的对象序列化与反序列化:实现与应用
Java中的对象序列化与反序列化:实现与应用
|
1天前
|
Java
JAVA单例模式-双重检验锁(防止反射、序列化多个)
JAVA单例模式-双重检验锁(防止反射、序列化多个)
8 1
|
2天前
|
Java 数据库 开发者
Java中的序列化与反序列化
Java中的序列化与反序列化
|
7天前
|
存储 安全 网络协议
【JAVA反序列化】序列化与反序列化&Java反射&URLDNS链
【JAVA反序列化】序列化与反序列化&Java反射&URLDNS链
|
9天前
|
网络协议 Java API
【Java】序列化和反序列化
【Java】序列化和反序列化
15 4
|
13天前
|
Java 数据安全/隐私保护 Android开发
Java基础21-读懂Java序列化和反序列化(二)
Java基础21-读懂Java序列化和反序列化(二)
25 1
|
13天前
|
XML 存储 Java
Java基础21-读懂Java序列化和反序列化(一)
Java基础21-读懂Java序列化和反序列化(一)
14 1
|
14天前
|
存储 JSON 算法
详解JAVA序列化
详解JAVA序列化
11 0
|
19天前
|
JSON 缓存 Java
【Java基础】 序列化和反序列化
Java中的序列化(Serialization)和反序列化(Deserialization)是将对象和字节流之间进 行相互转换的过程。这两个过程用于保存对象的状态并能够在需要时恢复这些状态。
13 1
|
1月前
|
存储 Java 编译器
Java 序列化
5月更文挑战第18天