vlambda博客
学习文章列表

Java面试时,面试官常问的问题(二)

11. 抽象类必须要有抽象方法吗?

不需要,抽象类不一定非要有抽象方法。

示例代码:

abstract class Cat { public static void sayHi() { System. out. println("hi~"); }}

上面代码,抽象类并没有抽象方法但完全可以正常运行。

12. 普通类和抽象类有哪些区别?

· 普通类不能包含抽象方法,抽象类可以包含抽象方法。

· 抽象类不能直接实例化,普通类可以直接实例化。

13. 抽象类能使用 final 修饰吗?

不能,定义抽象类就是让其他类继承的,如果定义为 final 该类就不能被继承,这样彼此就会产生矛盾,所以 final 不能修饰抽象类,如下图所示,编辑器也会提示错误信息:

Java面试时,面试官常问的问题(二)

 14. 接口和抽象类有什么区别?

· 实现:抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现接口。

· 构造函数:抽象类可以有构造函数;接口不能有。

· 实现数量:类可以实现很多个接口;但是只能继承一个抽象类。

· 访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符。

15. Java 中 IO 流分为几种?

按功能来分:输入流(input)、输出流(output)。

按类型来分:字节流和字符流。

字节流和字符流的区别是:字节流按 8 位传输以字节为单位输入输出数据,字符流按 16 位传输以字符为单位输入输出数据。

16. BIO、NIO、AIO 有什么区别?

· BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。

· NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。

· AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。

17. Files的常用方法都有哪些?

· Files. exists():检测文件路径是否存在。

· Files. createFile():创建文件。

· Files. createDirectory():创建文件夹。

· Files. delete():删除一个文件或目录。

· Files. copy():复制文件。

· Files. move():移动文件。

· Files. size():查看文件个数。

· Files. read():读取文件。

· Files. write():写入文件。

容器

18. Java 容器都有哪些?

Java 容器分为 Collection 和 Map 两大类,其下又有很多子类,如下所示:

· Collection

· List

ArrayList

LinkedList

Vector

Stack

· Set

HashSet

LinkedHashSet

TreeSet

· Map

· HashMap

LinkedHashMap

· TreeMap

· ConcurrentHashMap

· Hashtable

19. Collection 和 Collections 有什么区别?

· Collection 是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法,所有集合都是它的子类,比如 List、Set 等。

· Collections 是一个包装类,包含了很多静态方法,不能被实例化,就像一个工具类,比如提供的排序方法:Collections. sort(list)。

20. List、Set、Map 之间的区别是什么?

List、Set、Map 的区别主要体现在两个方面:元素是否有序、是否允许元素重复。

三者之间的区别,如下表:

Java面试时,面试官常问的问题(二)


  扫描二维码

获取Java干货

    嗨码歌