JDK源码-InputStream系列之ObjectOutputStream/ObjectInputStream

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 subclassAudits =
            new ConcurrentHashMap<>();

        /** queue for WeakReferences to audited subclasses */已审查过的子类的弱引用队列
        static final ReferenceQueue> subclassAuditsQueue =
            new ReferenceQueue<>();
    }
  • BlockDataOutputStream:负责将数据真正写入到输出流中,它有两种模式,一种是正常写入,与DataOutputStream没有什么区别,另一种是块数据(Data Block)模式,将数据以1024字节分块,以块的形式写入到输出流。

你可能感兴趣的:(JDK源码-InputStream系列之ObjectOutputStream/ObjectInputStream)