JavaIO流⾯试题
1.java中有⼏种类型的流?
java面试题要背多久
字符流和字节流。字节流继承inputStream和OutputStream,字符流继承⾃InputSteamReader和OutputStreamWriter。
2.字符流和字节流有什么区别?
要把⼀⽚⼆进制数据数据逐⼀输出到某个设备中,或者从某个设备中逐⼀读取⼀⽚⼆进制数据,不管输⼊输出设备是什么,我们要⽤统⼀的⽅式来完成这些操作,⽤⼀种抽象的⽅式进⾏描述,这个抽象描述⽅式起名为IO流,对应的抽象类为OutputStream和InputStream ,不同的实现类就代表不同的输⼊和输出设备,它们都是针对字节进⾏操作的。
在应⽤中,经常要完全是字符的⼀段⽂本输出去或读进来,⽤字节流可以吗?计算机中的⼀切最终都是⼆进制的字节形式存在。对于“中国”这些字符,⾸先要得到其对应的字节,然后将字节写⼊到输出流。读取时,⾸先读到的是字节,可是我们要把它显⽰为字符,我们需要将字节转换成字符。由于这样的需求很⼴泛,⼈家专门提供了字符流的包装类。
底层设备永远只接受字节数据,有时候要写字符串到底层设备,需要将字符串转成字节再进⾏写⼊。字符
流是字节流的包装,字符流则是直接接受字符串,它内部将串转成字节,再写⼊底层设备,这为我们向IO设别写⼊或读取字符串提供了⼀点点⽅便。
3.什么是java序列化,如何实现java序列化?
我们有时候将⼀个java对象变成字节流的形式传出去或者从⼀个字节流中恢复成⼀个java对象,例如,要将java对象存储到硬盘或者传送给⽹络上的其他计算机,这个过程我们可以⾃⼰写代码去把⼀个java对象变成某个格式的字节流再传输,但是,jre本⾝就提供了这种⽀持,我们可以调⽤OutputStream的writeObject⽅法来做,如果要让java 帮我们做,要被传输的对象必须实现serializable接⼝,这样,javac编译时就会进⾏特殊处理,编译的类才可以被writeObject⽅法操作,这就是所谓的序列化。需要被序列化的类必须实现Serializable接⼝,该接⼝是⼀个mini接⼝,其中没有需要实现的⽅法,implements Serializable只是为了标注该对象是可被序列化的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。