14. 接口和抽象类有什么区别?
-
抽象类的子类要用 extends 来继承;而实现接口要用 implements 。
-
抽象类可以定义构造函数,而接口不能。
-
抽象类里可以定义 main 方法,但接口不能有 main 方法。
-
实现数量:类可以实现很多个接口;但是只能继承一个抽象类。
-
访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符。
上述是从语法上来归纳,然后建议大家再从面向对象思想的角度来说明
-
抽象类是对逻辑的归纳,比如动物类可以是抽象类,人类可以extends动物这个抽象类。
-
而接口是对功能的归纳,比如可以定义一个“提供数据库访问功能”的 接口,在其中封装若干操作数据库的方法。
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 有什么区别?
首先说,两者