近期准备学习JavaAPI的核心包,此帖作为学习帖,将长期更新。非常欢迎大家进行讨论。
May 8th Target: java.io.*
Interface Serializable
Abtract Class InputStream
(to be continued..)

May 8th Target: java.io.*
Interface Serializable
- 该接口没有任何成员方法和变量。仅用于语义标识。实现该接口表示可序列化。
- 对一个对象进行序列化,其引用的对象也将进行序列化,及序列化整个对象图。正是这个特性使得可以利用序列化与反序列化实现深克隆。相关日志:http://student.youkuaiyun.com/space.php?uid=37718&do=blog&id=1389
- 序列化的实现通过OjectOutputStream类的writeObject方法实现。逆序列化readObject方法。 每个 实现serializable 接口的类对象都被编码,编码内容包括类名和类签名、对象的字段值和数组值,以及从初始对象中引用的其他所有对象的闭包。”
- 对于互相引用的对象,序列化仅会对各对象序列化一次,保证不会限于死循环的序列化。考虑Teacher类中引用了一个Student类 ,而Student类中又引用了一个Teacher类的情况。
- 对不需要序列化的变量,只需要添加关键字transient即可。如protected transient short x,y;这两个变量是GUI组件用以保存鼠标临时位置的。
Abtract Class InputStream
- 与输入有关的所有类都应该从InputStream继承。
- 它的作用是表示那些从不同数据源产生输入的类。数据源包括:
- 字节数组
- String对象
- 文件
- “管道”
- 其他流组成的序列。
- 其他数据源,如Internet连接。
- InputStream是一个抽象类,其中有一个抽象方法read()。用于从输入流中读取数据的下一个字节。
- InputStream的直接继承子类有:
(to be continued..)