- 介绍一下Java中的IO流
- 按照数据流向,可以将流分为输入流和输出流
- 按照数据类型,可以将流分为字节流和字符流,
- 按照处理功能,可以将流分为节点流和处理流
- 怎么用流打开一个大文件?
避免直接将文件中的数据全部读取到内存中- 缓冲流
- 使用NIO
- 说说NIO的实现原理
- Java的NIO主要由三个核心部分组成:Channel、Buffer、Selector。
- 基本上,所有的IO在NIO中都从一个Channel开始,数据可以从Channel读到Buffer中,也可以从Buffer写到Channel中
- Buffer本质上是一块可以写入数据,然后可以从中读取数据的内存。
- Selector允许单线程处理多个 Channel,
- 介绍一下Java的序列化与反序列化
- 序列化机制可以将对象转换成字节序列,这些字节序列可以保存在磁盘上,也可以在网络中传输,并允许程序将这些字节序列再次恢复成原来的对象
- 支持序列化需要实现Serializable接口
- 实现序列化需要使用对象流ObjectInputStream和ObjectOutputStream
- Serializable接口为什么需要定义serialVersionUID变量?
- 是否允许实现恢复数据的评判标准
- 除了Java自带的序列化之外,你还了解哪些序列化工具?
- JSON
- Protobuf