1. 按功能:输入流(input)、输出流(output)
2. 按类型:字节流、字符流 (1)字节流和字符流的区别 字节流( InputStream 、 OutputStream )按 8 位传输,以字节为单位输入输出数据,字符流( Reader 、 writer )
按 16 位传输以字符为单位输入输出数据。
BIO:同步阻塞式IO,传统IO,模式简单、使用方便、并发处理能力低
NIO:同步非阻塞式IO,BIO的升级,客户端和服务器通过Channel(通道)通讯,实现了多路复用。 三大核心部分:Channel(通道),Buffer(缓冲区), Selector(选择器)
AIO:异步非阻塞式IO,NIO的升级,基于事件和回调机制
exists():检查文件路径是否存在、createFile():创建文件、createDirectory():创建目录、delete():删 除文件或目录、copy():复制文件、move():移动文件、size():查看文件数、read():读取文件、 write():写入文件
Collection是一个顶级集合接口,他提供了对集合对象进行基本操作的通用方法,在java类库中有很多 具体实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承的接 口有List和Set。
Collections则是集合类的一个工具类,它提供了一系列静态方法,用于堆集合中元素排序、搜索以及线 程安全等各种操作。
排序 Collection List ArrayList LinkedList Vector Queue Set HashSet LinkHashSet TreenSet Map HashMap TreeMap 比 较 List Set Map 继 承 接 口 Collection Collection 常 见 实 现 类 ArryList、 LinkedList、 Vector HashSet、 LinkedHashSet、 TreeSet HashMap、HashTable 常 见 方 法 add、remove、 clear、get、 contains(包 含)、size add、remove、 clear、contains、size put、get、remove、clear、 containsKey(包含键)、 containsValue(包含值)、keySet、 values、size 元 素 可重复 不可重复(equals判 断) 不可重复 顺 序 有序 无序(实际上由哈希值 决定),但有支持排序 的实现类(TreeSet) 线 程 安 全 Vector线程安全 HashTable线程安全
void reverse(List list):对指定 List 集合元素进行逆向排序。
void shuffle(List list):对 List 集合元素进行随机排序(shuffle 方法模拟了“洗牌”动作)。
void sort(List list):根据元素的自然顺序对指定 List 集合的元素进行升序排序。
void swap(List list, int i, int j):将指定 List 集合中的 i 处元素和 j 处元素进行交换。
查找、替换 int binarySearch(List list, Object key):使用二分搜索法搜索指定的 List 集合,以获得指定 对象在 List 集合中的索引。如果要使该方法可以正常工作,则必须保证 List 中的元素已经处 于有序状态。
Object max(Collection coll):根据元素的自然顺序,返回给定集合中的最大元素。
Object min(Collection coll):根据元素的自然顺序,返回给定集合中的最小元素。
void fill(List list, Object obj):使用指定元素 obj 替换指定 List 集合中的所有元素。
int frequency(Collection c, Object o):返回指定集合中指定元素的出现次数。
int indexOfSubList(List source, List target):返回子 List 对象在父 List 对象中第一次出现 的位置索引;如果父 List 中没有出现这样的子 List,则返回 -1。
int lastIndexOfSubList(List source, List target):返回子 List 对象在父 List 对象中最后一次 出现的位置索引;如果父 List 中没有岀现这样的子 List,则返回 -1。 boolean replaceAll(List list, Object oldVal, Object newVal):使用一个新值 newVal 替换 List 对象的所有旧值 oldVal。
(1)说一下TreeSet
TreeSet是Set接口的实现类,它可以确保集合元素处于排序状态,并支持自然排序和定制排序。他的底 层是由TreeMap实现的,因此他也是非线程安全的,但是他内部元素的值不能为null。 (2.)说一下TreeMap
TreeMap底层存储采用与HashMap非常相似的键值对。区别在于TreeMap提供了以排序顺序存键值对 的有效方法,它是基于红黑树实现的。
1. hashMap去掉了hashTable的contains方法,但是增加了containsKey、containsValue方法
2. hashTable是同步的,而hashMap是非同步的,效率比hashTable高
3. hashMap允许空键值,而hashTable不允许