今天复习了容器相关知识,又学习了IO流全部内容,包括IOUTILS 工具 和FILEUTILS 工具, 并进入了线程部分!
1. 迭代器_遍历List_Set
(1) 迭代器的由来是什么?
Java.lan.itarable
(2) 使用迭代器遍历集合的原理是什么?
2. 迭代器_遍历Map
(1) ListIterator接口比Iterator扩展的哪些方法?
ListIterator的方法
Iterator的方法:
(2) 并发修改异常是如何产生的?
在迭代器遍历的时候,使用容器对象进行了添加的操作,从而导致了并发修改异常。
ConcurrentModificationException.
3. 容器体系框架总结
(1) 画出集合体系框架图?
(2) 集合和数组的异同点?
数组定长、有序不唯一,数组转换成集合时只能转成list集合;所用方法Arrays.asList(arr);
集合更灵活,集合转成数组时,可以任何类型集合,所用的方法是collection的方法。比如set.toArray()
4. IO流的基本概念
(1) 简述IO流的原理?
1) 在 Java 程序中,对于数据的输入/输出操作以“流” (stream) 方式进行; 2) J2SDK 提供了各种各样的“流”类,用以获取不同种类的 数据;程序中通过标准的方法输入或输出数据。
3) Java 的流类型一般位于 http://java.io 包中
(2) Java中关于IO流的定义 ?
data source. 提供原始数据的原始媒介。常见的:数据库、文件、其他程序、内存、网络连接、IO 设备。
数据源就像水箱,流就像水管中流着的水流,程序就是我们最终的用户。 流是一个抽象、动态的概念,是一连串连续动态的数据集合。
5. 流的细分和体系_四大抽象类
(1) IO流可以分为哪几类?
按流的方向:
1) 输入流:数据源到程序(InputStream、Reader 读进来)
2) 输出流:程序到目的地(OutPutStream、Writer 写出去)
按处理数据单元:
1) 字节流:按照字节读取数据(InputStream、OutputStream)
2) 字符流:按照字符读取数据(Reader、Writer)
按功能不同:
1) 节点流:可以直接从数据源或目的地读写数据。
2) 处理流(包装流):不直接连接到数据源或目的地,是其他 流进行封装。目的主要是简化操作和提高性能.
节点流和处理流的关系:
1) 节点流处于 io 操作的第一线,所有操作必须通过他们进行;
2) 处理流可以对其他流进行处理(提高效率或操作灵活性).
(2) 流的四大抽象类分别是什么?
6. 文件字节流
(1) FileInputStream的常用方法有哪些?
(2) FileOutputStream的常用方法有哪些?
7. 使用字节流实现文件复制
(1) 简述使用字节流实现文件复制的原理?
(2) 简述使用字节流实现文件复制的步骤?
通过创建输入流 、 输出流, 定义中转站, 通过while循环将文件存到中转站,然后再写到目的地,写完后,关闭输出、关闭输入; 全程通过try catch 和finally; 以及输入流和输出流 初始化为null;
分享/讲解/扩展思考
扩展作业:HashMap,HashSet的所有遍历方式都敲一遍,统计一下HashMap和HashSet有多少种遍历方式(百度查询)
点名提问从第一节课到最后一节课分别学到了什么,直到同学们把所有的知识点都说出来并且保证无误。
第28次(IO流)
学习主题:
学习目标:
1 掌握不同类型流的使用
对应视频:
http://www.itbaizhan.cn/course/id/85.html
对应文档:
无
对应作业
8. 文件字符流
(1) Reader常用的方法有哪些?
(2) Writer常用的方法有哪些?
9. 缓冲字节流_缓冲字符流
(1) 缓冲字节流的特点是什么?
BufferedInputStream 和 BufferedOutputStream 是处理流(包装流),读写速度快,效率高。
(2) 简述使用缓冲字节流进行文件复制时提高效率的原理是什么?
1) 读文件和写文件都使用了缓冲区,减少了读写次数,从而 提高了效率
2) 当创建这两个缓冲流的对象时时,会创建了内部缓冲数组, 缺省使用 32 字节大小的缓冲区.
3) 当读取数据时,数据按块读入缓冲区,其后的读操作则直 接访问缓冲区
4) 当写入数据时,首先写入缓冲区,当缓冲区满时,其中的 数据写入所连接的输出流。使用方法 flush()可以强制将缓 冲区的内容全部写入输出流
5) 关闭流的顺序和打开流的顺序相反.只要关闭高层流即可,关闭高层流其实关闭的底层节点流
6) Flush 的使用:手动将 buffer 中内容写入文件
10. 转换流
(1) InputStreamReader的作用是什么?
用于将字节流转化成字符流,字符流与字节流之间的桥梁
InputStreamReader 的作用是把 InputStream 转换成 Reader OutputStreamWriter的作用是什么?
OutputStreamWriter 的作用是把 OutputStream 转换成 Writer
11. 打印流
(1) 简述PrintStream的特点?
1) PrintStream 提供了一系列的 print()和 println(),可以实现将基本数据类型格式化成字符串输出。对象类型将先调用 toString(),然后输出该方法返回的字符串
2) System.out 就是 PrintStream 的一个实例,代表显示器
3) System.err 也是 PrintStream 的一个实例,代表显示器
4) PrintStream的输出功能非常强大,通常需要输出文本内容, 都可以将输出流包装成 PrintStream 后进行输出
5) PrintStream 的方法都不抛出 IOException
(2) 简述PrintWriter与PrintStream的区别?
使用PrintWriter 需要手动flush();
使用PrintWriter 比 BufferedWriter更快, 因为BufferedWriter只能写入字符串等少数的类型,而PrintWriter可以写入多种类型。
12. 数据流
(1) 数据流的作用是什么?
DataInputStream 和 DataOutputStream
1) 提供了可以存取所有 Java 基础类型数据(如:int,double 等)和 String 的方法。
2) 处理流,只针对字节流,二进制文件
3) 输入流链和输出流链
4) 注意:只要关闭上层流即可
(2) 你学过的流中哪些是处理流?
A. 缓存流:
缓冲字节流
BufferedInputStream
BufferedOutputStream
缓冲字符流
BufferedReader
BufferedWriter
B. 转换流
InputStreamReader:
OutputStreamWriter:
C. 数据处理流
DataOutputStream
DataInputStream