什么是比特(Bit),什么是字节(Byte),什么是字符(Char),它们长度是多少,各有什么区别
-
Bit最小的二进制单位 ,是计算机的操作部分 取值0或者1
-
Byte是计算机操作数据的最小单位由8位bit组成 取值(-128-127)
-
Char是用户的可读写的最小单位,在java里面由16位bit组成 取值(0-65535)
BufferedReader属于哪种流,它主要是用来做什么的,它里面有那些经典的方法
-
缓冲流,将读取的内容存在内存中
-
readLine()
什么是节点流,什么是处理流,它们各有什么用处,处理流的创建有什么特征
-
节点流:直接与数据源相连,用于输入或者输出
-
处理流:在节点流的基础上进行加工,对功能扩展,处理流的构造器必须传入节点流的子类
什么叫对象序列化,什么是反序列化,实现对象序列化需要做哪些工作
-
将需要被序列化的类实现serializable接口,
-
然后使用一个输出流(如FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,
-
接着使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数obj的对象写出
-
要恢复的话则用输入流。
字节流和字符流的区别?
-
字节流采用baiduASCII编码,主要用在处理二进制数据,它是按字节来处理的
-
字符流采用Unicode编码,按虚拟机的encode来处理,也就是要进行字符集的转化
输入流和输出流
-
输入流就是把数据读入到内存(程序)中,
-
输出流就是把内存(程序)中的数据输出到外设或其他地方
-
从文件角度简单总结就是,输入流就是读数据,输出流就是写数据。
-
在这个过程中,始终把内存作为参考点。
什么是IO流?
-
流是磁盘或其它外围设备中存储的数据的源点或终点
-
流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象
-
数据在两设备间的传输称为流
Java中有几种类型的流?
-
字节流:InputStream,OutputStream和其它高性能的子类
-
字符流:Reader,Writer和其它高性能的子类
有哪些可用的Filter流?
- FilterInputStream
- FilterOutputStream,
- FilterReader
- FilterWriter
什么是缓冲区?有什么作用?
- 利用存储区缓解数据到达速度与离去速度不一致而采用的技术称为缓冲
- 提高资源利用率和系统效率
什么是阻塞IO?什么是非阻塞IO?
-
阻塞IO:IO操作完成(包括错误)才会返回
-
非阻塞IO:无论IO操作是否完成都会立刻返回,通过其它状态判断操作是否成功
BIO和NIO和AIO的区别以及应用场景?
-
BIO:同步并阻塞,并发连接数不多时采用BIO
-
NIO:同步非阻塞,高并发场景
-
AIO:异步非阻塞,高并发场景
NIO和传统的IO有什么区别?
-
IO是面向流的,NIO是面向块(缓冲区)的
-
IO是阻塞的,NIO是非阻塞的。