ObjectOutputStream/ObjectInputStream
这两个类的代码,太j8庞大了,单独拿出来写了
- ObjectOutputStream可以将java基本数据类型或实现了序列化接口(Serializable)的对象写入其它输出流。如果配合FileOutputStream可以将对象写入磁盘,实现对象的持久化存储;如果配合网络流,则可以实现对象的网络传输。
- ObjectOutputStream实现了接口ObjectOutput.而这个接口继承了DataOutput,相当于对DataOutput进行了扩展.实现了ObjectOutput接口的类,可以向object中写入数据.
内部类
- Caches:缓存子类相关的数据
private static class Caches {
/** cache of subclass security audit results */缓存了子类的安全审查结果
static final ConcurrentMap<WeakClassKey,Boolean> subclassAudits =
new ConcurrentHashMap<>();
/** queue for WeakReferences to audited subclasses */已审查过的子类的弱引用队列
static final ReferenceQueue<Class<?>> subclassAuditsQueue =
new ReferenceQueue<>();
}
- BlockDataOutputStream:负责将数据真正写入到输出流中,它有两种模式,一种是正常写入,与DataOutputStream没有什么区别,另一种是块数据(Data Block)模式,将数据以1024字节分块,以块的形式写入到输出流。