[TOC]
## 序列化和反序列化
*序列化(将java对象写入IO流中) / 反序列化(从IO流中恢复java对象)*
- 条件
```
一个类要想序列化,必须实现 Serializable接口或者Externalizable接口
```
- 注意
```
不能序列化static修饰的成员变量
不能序列化transient修饰的成员变量
为了提高serialVersionUID的独立性和确定性,强烈建议在一个可序列化类中显示的定义serialVersionUID,为它赋予明确的值。
```
>### 序列化
```
创建 ObjectOutputStream 对象
writeObject()写入对象
操作一次,执行flush();
```
>### 反序列化
```
创建 ObjectIntputStream 对象
readObject()读取对象
```
>### 显式地定义serialVersionUID有两种用途
```
1. 在某些场合,希望类的不同版本对序列化兼容,因此需要确保类的不同版本具有相同的serialVersionUID;
2. 在某些场合,不希望类的不同版本对序列化兼容,因此需要确保类的不同版本具有不同的serialVersionUID。
```
- 第一章 java SE
- 1.1数据类型
- 1.2 流程控制语句
- 1.3 方法
- 1.4 面向对象三特性
- 1.5 对象数组与集合
- 1.6 数组和集合操作工具类
- 1.7 可变参数
- 1.8 String
- 1.9 StringBuilder
- 1.10 final&&finally&&finalize
- 1.11 抽象类与接口
- 1.12 基本数据类型的包装类
- 1.13 泛型
- 1.14 内部类
- 1.15 throw & throws & try catch
- 1.16 线程
- 1.17 BeanUtils
- 1.18 java反射
- 1.19 序列化和反序列化
- 1.20 IO输入输出流
- 1.21 File
- 1.22 RandomAccessFile
- 1.23 第三方工具CommonsIO
- 1.24 java网络传输
- 第二章 java EE
- 2.1 maven的配置
- 2.2 Cookie
- 2.3 EL表达式 JSTL
- 2.4 验证相关
- 2.4.1 验证码
- 2.5 防重复提交
- 2.6 activeMq的使用
- 2.7 jtl的使用
- 2.8 Upload上传文件
- 第三章 Spring相关
- 3.1 IOC/DI
- bean的生命周期
- bean的配置
- 3.2 Spring Aop
- 3.3 Spring Jdbc
- 3.4 事物相关
- 事物
- 事物的使用
- 3.5 MBG使用
- 第四章 解决问题方法
- 4.1 List转换为Map
- 4.2 结果返回类
- 4.3 HSSF的使用
- 第五章 排序
- 5.1 冒泡排序
- 5.2 选择排序
- 5.3 快速排序