Java序列化

1 什么是序列化

简单来说,

序列化是将java对象变成一个二进制内容保存,本质就是一个byte[] 数组。

反序列化就是将这个二进制内容变成java对象。

作用:

在传递和保存对象的时候,保证对象的完整性和可传递性。对象转化成二进制文件,更有利于在网络当中传输。

2 Serializable

在java中,通过实现这个接口来实现该类的序列化。这个接口比较特殊。没有任何的方法和属性。

只起标识作用。

3 transient

transient : 短暂的。

被java transient 关键字修饰的属性,将不会被序列化。

也就是说:

  1. class user implements serializable {
  2. private String name;
  3. private Integer age;
  4. private transient String card;
  5. }
  6. 在序列化的时候不会序列化card属性。

同样,静态变量也不会被序列化。

两者结合,你只需要实现serializable 接口,将不需要序列化的数据使用transient 修饰就行了。序列化对象的时候,就不会序列化这些属性了。如:密码,卡号。等关键数据。