A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、缓冲流为什么会提高IO流读写的效率?
答:对于原来的IO流读写来说,可以理解成空手搬箱子(一共N个),从A搬到B,因为一次只能搬送一个,所以需要来回N次,这样子的效率比较低。
而缓冲流对于原来的IO流读写而言,就相当于,我用一辆车来装箱子进行搬送(每次可以装M个箱子),所以只需要N/M次来回就可以完成搬送,效率就比较高了。


2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
答:当编写的代码格式和读取的代码格式不一致的时候,就会出现乱码问题。
因为对于同一个文字而言,在不同的代码表中所处的是不同的位置,所以如果使用不同的码表去编码解码一个文字,最后的结果会是乱码。
对于乱码的问题本质上就是编码解码格式的不一致,解决方法就是把编码解码的格式统一一致即可。

3、序列化流中的serialVersionUID的作用
答:serialVersionUID是序列号的意思,它根据类的信息进行创建,当类发生改变的时候,serialVersionUID也会发生改变,所以他可以用来保证版本的一致性。
通俗的理解就是:当对象以现在的序列号A 序列化以后,版本发生改变(类发生变化,序列号变为B),当对象需要反序列化的时候,会因为序列号的不一致,而失败,这就保证了版本的一致性。

4、请根据自己的语言表述IO流的体系
答:IO流从大体上有2种分法,根据流向是输出流和输入流(相对于内存而言),根据格局分是字符流和字节流(从本质上而言,所有的IO流都是字节流)。
字节输出输入流因为操作单位为字节,不适合操作文本,适合操作文件。相对的字符输入输出流因为操作对象是字符,所以适合操作文本。
IO流根据功能分还可以分为缓冲流,序列化流,转换流,打印流。这些功能流都是基于字节输入输出流进行包装的。
缓冲流可以分为字节缓冲输出流,字节缓冲输入流,字符缓冲输入流,字符缓冲输出流。工作原理都是把文件或者系统的数据传输到一个缓冲区,再整体进行传输。
转换流可以分为输入流和输出流,可以通过指定的字符集把字符从字节转换为字符或者从字符转换为字节。
序列化流可以分为序列化和反序列化,前一个是把对象转换为二进制字节序列保存到文件种,后一个是把文件种的为禁止字节序列转换会对象形式。再这个过程种会把对象所拥有的序列号一起保存到字节序列中。
打印流是字节输出流的一种子类包装,既拥有字节输出流的一些成员方法(例如write()可以进行字符转换),还拥有自己的方法(print,println,可以原样输出数据信息)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马