Stream各个类图
2016-10-14 10:49:19 0 举报
Stream是Java 8中引入的一个新特性,它与集合、数组共同构成了Java的三大核心容器。Stream是一个中间操作接口,它可以对集合数据进行过滤、映射、排序等操作。Stream的操作不会改变原始数据源,而是产生一个新的Stream对象。常用的Stream操作有filter、map、reduce、collect等。此外,Stream还提供了一些终端操作,如forEach、toArray、count等,用于对Stream数据进行消费。在Java 8中,Stream可以与Lambda表达式结合使用,使代码更加简洁、易读。总之,Stream是Java 8中处理集合数据的一种高效、简洁的方式。
作者其他创作
大纲/内容
FieldReflector
成员变量处理类
setObjFieldValues
BlockDataOutputStream
静态内部类 真正实现读写操作blockData 序列化格式,用来切分内容OutPutStreamDataOutPutStreamMAX_BLOCK_SIZE 1024 最大到1024就会flush
writedrainwriteBlockHeader
BufferedOutputStream
buf[]count
writeflushBufferflush
ReplaceTable
当前对象当替换对象的映射关系ObjectOuptStream的子类来实现
ObjectStreamClass
类的元数据处理类Caches 静态缓存
writeNonProxyforClass 反序列化 获取class对象newInstance initNonProxysetObjFieldValues 注入成员变量
ObjectStreamField
成员变量的元数据处理类namesignature 字段类型标签typeunsharedfieldoffset
ObjectOutput
writeObject
PipedInputStream
connected 连接标识buffer[] 数据缓冲字节数组readSide 当前读线程writeSide 当前写线程in 读游标out 写游标
read() in0 没有数据 while循环阻塞recevie(int b) 由out进行调用,并设置in的值,代表接收到数据了
PushbackInputStream
回填读取流,用于其他任务读取
unread(int)unread(byte[])
InputStream
序列化
PeekInputStream
栈顶单字节读取操作
+ operation1(params):returnType- operation2(params)- operation3()
PipedOutputStream
sink PipeInputStream 组合了一个pin
DataInput
readFullyreadShortreadUnsignedBytereadBytereadLong
OutputStream
ByteArrayInputStream
buf[] 字节数组posmarkcount
markmarkSupportreadreset
LineNumberRead
lineNumbermarkedLineNumber
getLineNumber()
BlockDataInputStream
PeekInputStream inDataInputStream din
refill 从流里取数据放入缓存readBlockHeaderpeek
ByteArrayOutputStream
buf[] 字节数组count
ensureCapacitywrite
ObjectInput
readObjectreadavailable
ObjectStreamConstants
序列化配置常量protocol_version_1 流协议版本号TC_BLOCKDATA 可选数据块TC_OBJECT 对象类型标志TC_CLASSDESC class类标志TC_ENDBLOCKDATA 数据块结束标志
ClassDataSlot
ObjectStreamClasshasData
Caches
writeObjectwriteflush
序列化的格式:meta ..block-header(5byte)..data(1024byte)..block-header(5byte)..data(1024byte)..block-header(2byte)..data(256byte)..block-end
HandleTable
对象到handle的映射 缓存一个计数器handle,若重复序列化对象,通过计数器可以找到size 对象数量spine[]objs[] 和handle读应的对象 缓存数组
lookup assign 记录一个obj和handle
ExceptionInfo
异常处理类
ObjectOutputStream
BlockDataOutputStream boutprotocol 目前是新序列化协议enableOverride 其他类扩展buf 缓冲数组 1024hbuf Data block 头部值缓冲cbuf 字符串数组缓冲
BlockData序列化在block-mode方式对数据加上bolck-header如果长度小、于2565byte(TC_BLOCKDATALONG+len)大于256 2byte(TC_BLOCKDATA+len)
ObjectInputStream
buf
readObject0readNonProxyresolveClassreadNonProxyDesc 根据类型描述文本,通过Class.forName对象Class对象resolveProxyClassdefaultReadFields
0 条评论
下一页