Java 面试题之 IO 流
1、Java 中饭有几种类型的流
按照流的方向:输入流(inputStream)和输出流(outputStream)
按照实现功能分:节点流和处理流
按照处理数据的单位:字节流和字符流,字节流继承于 InputStream 和 OutputStream,字符流继承于 InputStreamReader 和 OutputStreamWriter。
2、字节流如何转为字符流
字节输入流转字符输入流通过 InputStreamReader 实现,该类的构造函数可以传入 InputStream 对象
字节输出流转字符输出流通过 OutputStreamWriter 实现,该类的构造函数可以传入 OutputStream 对象
3、如何实现对象克隆
(1)实现 Cloneable 接口重写 Object 类中的 clone()方法
(2)实现 Serializable 接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆
4、什么是 Java 序列化,如何实现 Java 序列化?
序列化就是一种用来处理对象流的机制,将对象的内容进行流化。可以对流化后的对象进行读写操作,可以将流化后的对象传输于网络之间。序列化是为了解决在对象流读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现 Serialize 接口,没有需要实现的方法,此接口只是为了标注对象可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个 ObjectOutputStream(对象流)对象,再使用 ObjectOutputStream 对象的 write(Object obj)方法就可以将参数 obj 的对象写出。
评论