JavaSE面试题(七)

输入流和输出流是程序与文件交互的两种方向,节点流直接与数据源相连,处理流则封装节点流以提供更高级的功能。处理流包括缓冲流,能提高读写效率。字节流和字符流分别处理基本信息单元。序列化是将对象转化为字节流的过程,用于持久化对象。静态变量和transient修饰的属性不参与序列化。
摘要由CSDN通过智能技术生成

输入流和输出流的联系和区别

在程序和文件之间,输入和输出的方向是针对程序而言。

向程序中读入,就是输入流,是获得数据。从程序中外读,就是输出流,是传出数据

节点流和处理流联系和区别

介绍节点流和处理流

节点流和处理流是IO流的一种划分。

节点流可以从或向一个特定的节点读写数据

处理流是对一个已存在的流的连接和封装,通过封装流的功能实现数据读写

二者的区别和联系

节点流是底层流,可以直接和数据源相接。

处理流包装节点流可以消除不同节点流实现的差异,还能提供更便捷的方法进行输入和输出

处理流对节点流进行包装会使用修饰器设计模式,不会直接同数据源相连。

处理流的功能(优点)

  • 以增加缓冲的方式来提高输入和输出的效率,提高了性能
  • 自身能提供一系列便捷的方法来处理一次输入和输出大批量的数据

IO流的分类

根据流的方向分为:输入流和输出流

根据流能处理的信息量大小分为:字节流和字符流

根据流所连接的对象不同分为:节点流和处理流

列举常用的字节输入输出流

FileInputStream 从文件系统中的某个文件获得输入字节

ObjectInputStream 对使用ObjectOutStream写入的基本数据和对象进行反序列化

StringBufferInputStream 在应用程序创建输入流

缓冲流的优点和原理

带缓冲的流的工作原理:读取到一个字节/字符,先不输出等凑足了缓冲的最大容量后一次性写出去,从而提高了工作效率

优点:减少对硬盘的读取次数,降低对硬盘的损耗。

序列化的定义,实现,注意事项

将一个对象写在硬盘上或者网络上,对其进行序列化,将它序列化成为一个字节流。

实现接口Serializavle

如果对象某个属性是对象,必须也实现接口Serializavle

序列化对静态变量无效

如果不希望某个属性参与序列化,使用transient

序列化版本不兼容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值