我计划写三篇比较长的博客,来详细梳理一下java中的IO操作,大致内容是:第一篇介绍相关的类,第二篇整理相关的面试题,第三篇计划使用这些类和方法完成一个小项目。
每篇文章都不是以往的风格,不在单纯的将其作为自己的笔记瞎写,而是认真的对自己的学习情况整理一下,达到复习的目的,同时如果这些东西可以帮助的一些初学者(好吧,其实我也是),那我将十分的开心。
写作目的
搜集常见的有关java IO操作的笔试或者面试题(这些题目当然不是自己原创的)。不定期更新。。。。
1.什么是比特(Bit),什么是字节(Byte),什么是字符(Char),它们长度是多少,各有什么区别
Bit是最小的二进制单位,是计算机直接处理的对象,其值只能为0或1
Byte是计算机操作数据的最小单位,由8位bit组成 取值为-128到127
Char是用户可读写的最小单位,在java中有2个Byte共16位组成。
区别:Bit和Byte都是计算机处理的对象,而Char是给用户看的。
2.什么是流,按照传输的单位,分成哪两种流,并且他们的父类叫什么
流是一个抽象概念,是对IO设备操作的封装。按照传输的单位,分为字节流和字符流。它们的分别是:
字节流:InputStream和OutputStream
字符流:Reader和Writer
3.按照实现功能流分为哪两种,分别举例说明
按照实现功能分为:节点流,处理流
举例子:
节点流:OutputStream
处理流: OutputStreamWriter
4.怎么样把输出字节流转换成输出字符流,说出它的步骤
使用OutputStreamWriter类,具体操作如下
FileOutputStream fo=new FileOutputStream(new File(“test.txt”));
OutputStreamWriter o=new OutputStreamWriter()fo ;
5.什么叫对象序列化,什么是反序列化,实现对象序列化需要做哪些工作
对象序列化是将内存中的对象以二进制的方式存储在硬盘文件中。
对象反序列化是将硬盘文件中表示对象的二进制转化为对象。
实现对象序列化,该对象的类需要实现serializable接口
6.在实现序列化接口是时候一般要生成一个serialVersionUID字段,它叫做什么,一般有什么用
是版本号,防止序列化出错
7. 请问你在什么情况下会在你得java代码中使用可序列化? 如何实现java序列化
需要把一个对象写入数据源或者从一个数据源读出来,就使用可序列化,实现序列化需要实现Serializable接口
插入待定,日后再更新,今天就看了这几个题2018.4.25