io常见面试题~
最近在准备面试题 准备去面试 把收集到的面试题来个大家一起分享下~
1.java中有几种类型的流?
两种: 分别是字节流和字符流 字节流继承自''inputstream''和''outputstream'',字符流继承自"inputstreamReader"和"outputstreamWriter"
2.字节流和字符流有什么区别?
1.字节流操作的基本单位是字节,字符流操作的基本单位是字符
2.字节流使用用缓存区而是直接操作文本本身,字符流使用缓存区会经过缓冲区
3.在硬盘上所有文件都已是字节的形式存在的,而字符只在内存中才会形成
4.字节流处理的单元为1个字节,操作字节和字节数组
字符流处理的单元为2个字节的Unicode字符,分别操作字符,字符数组或者字符串
5.字符流以字符或者字符数组的形式读写数据,只能读取二进制文件
而字符流能读写各个类型的数据
3.什么是缓冲区,它有什么作用?
1.缓冲区就是一块特殊的内存区域,如果当程序需要频繁的操作文件或者数据库的时候就会减低性能,为了提高性能就会将一部分的数据读写到缓冲区中,以后就可以直接冲缓冲区中获取即可,这样就显著的提升了性能
4.什么是Java序列化,如何实现Java序列化?
1.序列化就是一种用来处理对象流的机制,将对象内容进行流化,可以对流化后的对象进行读写操作,可以将流化的对象进行网络传输,序列化是为了解决对象流读写操作时所引发的问题的
2.将需要被序列化的l类实现Serialize接口,此接口就是为了标注对象可被序列化的
5.什么是io流,简单介绍下
1.io流就是用来进行文件的数据传输的,java对数据操作的主要手段就是通过流的方式,操作的类都在IO包中,按照流的走向分别为输入流和输出流
2.常见的应用为: 文件复制,文件上传下载
6.什么是输入流和输出流?
输入流就是读取数据
输出流就是写出数据
7.io流中的常见方法有哪些?
flush:字符流中刷新缓存区的方法
close:关闭io流
read:读字节
writer:写字节