Java API Study Notes

近期准备学习JavaAPI的核心包,此帖作为学习帖,将长期更新。非常欢迎大家进行讨论。

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..)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值