15. java 中 IO 流分为几种?
按功能来分可以分输入流(input)和输出流(output)。从类型来分可以是字节流和字符流。
16. BIO、NIO、AIO 有什么区别?
-
BIO的英语全称是Block IO, 同步阻塞式 IO,就是平常经常使用的传统 IO,特点是简单方便,但并发处理能力低。
-
NIO,叫New IO, 同步非阻塞 IO,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。
-
AIO,Asynchronous IO, 是 NIO 的升级,实现了异步非堵塞 IO ,它是基于事件和回调机制。
17. Files的常用方法都有哪些?
-
Files.exists():检测路径是否存在。
-
Files.createFile():创建文件。
-
Files.createDirectory():创建文件夹。
-
Files.delete():删除文件或文件夹。
-
Files.copy():复制文件。
-
Files.move():移动文件,即复制后删除。
-
Files.size():查看文件的个数。
-
Files.read():读取文件。
-
Files.write():写入文件。
第二部分,Java的集合,也叫容器
==================================================================================
18. java 的集合容器都有哪些?
如下给出了大致的结构
-
所有线性表对象的父类是Collection
-
有线性表类,比如ArrayList和Set等。
-
有键值对类,比如HashMap。
19. Collection 和 Collections 有什么区别?
-
Collection 是一个集合接口,是所有线性表对象的父类。
-
Collections是集合类的一个工具类,包含了对集合元素进行排序和线程安全等各种操作方法。
20. List、Set、Map 之间的区别是什么?
21. HashMap 和 Hashtable 有什么区别?
首先说,两者都是键值类的对象
-
HashTable线程安全的,而HashMap线程不安全的,大多数的场景是单线程环境,在单线程环境下,HashMap效率上比hashTable要高。
-
HashMap允许空键值,而hashTable不允许。
22. 如何决定使用 HashMap 还是 TreeMap?
对于在Map中进行插入、删除和定位元素这类操作,可以选HashMap。但如果你要对一个有序的key集合进行遍历,需要选TreeMap。
23. 说一下 HashMap 的实现原理?
HashMap是基于数据结构里的