Java核心面试宝典Day9面向对象常见面试题汇总

Posted 灰小猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java核心面试宝典Day9面向对象常见面试题汇总相关的知识,希望对你有一定的参考价值。

Hello,你好呀,我是灰小猿!一个超会写bug的程序猿!
用坚持缔造技术、用指尖敲动未来!
和很多小伙伴们一样,我也是一名奔波在Java道路上的“创造者”。也想靠技术来改未来,改变世界!因为我们坚信每一次敲动键盘都能让生活变得更智能、世界变得更有趣
在此专栏《Java核心面试宝典》记录我们备战梦想的【day 9】


今天继续和大家分享在面向对象中类与接口方面的常见面试题。不要小看任何一个基础技术点,往往最基础的才是最会考察的内容。

1、抽象类和接口是否可以被实例化?

抽象类和接口都不能通过new操作符来创建实例,只能通过具体类创建实例。

2、包含抽象方法的类是否必须被声明为抽象类,抽象类是否必须包含抽象方法?

包含抽象方法的类必须被声明为抽象类,具体类不能包含抽象方法。而抽象类中可以不包含抽象方法,即使一个类中的所有方法都是具体方法,也可以将这个类声明为抽象类。

3、从继承角度而言,抽象类和接口的区别是什么?

类的继承只能是单重继承,即一个类只能继承一个父类;但是对接口的继承是允许多重继承的, 即一个类可以继承多个接口,一个接口同样也可以继承多个接口,这样的接口称为子接口。

4、从变量、构造方法、方法的角度,阐述抽象类和接口的区别?

抽象类和接口有以下区别:

抽象类的变量没有限制,接口只包含常量,即接口的所有变量必须是public static final
抽象类包含构造方法,子类通过构造方法链调用构造方法,接口没有构造方法。
抽象类的方法没有限制,接口的方法必须是public abstract的实例方法,

同时需要注意:在新版的JDK中关于接口的规则有了一定的变化,
从Java8开始,接口方法可以由默认实现,
从Java9开始,接口内允许定义私有方法。

5、哪两个接口可以实现对象之间的排序和比较大小?

Comparable接口是排序接口。如果一个类实现了 Comparable 接口,则该类的对象可以排序。Comparable 接口包含一个抽象方法 compareTo,实现 Comparable 接口的类需要实现该方法,定义排序的依据。

Comparator接口是比较器接口。如果一个类本身不支持排序(即没有实现 Comparable 接口),但是又需要对该类的对象排序,则可以通过实现 Comparator 接口的方式建立比较器。Comparator 接口包含两个抽象方法 compareequals,其中 compare 方法是必须在实现类中实现的,而 equals 方法在任何类中默认已经实现。

6、如何对一个数组中的多个对象按照不同的依据进行排序?

为了按照不同的依据进行排序,则需要使用不同的比较器,通过实现 Comparator接口实现比较器,在调用Arrays.sort方法时将数组和比较器作为参数,即可将数组按照指定的比较器进行排序。

7、除了首字母大写,包装类的名称和对象的基本数据类型是否一定相同?

不一定,int类型对应的包装类是Integerchar类型对象的对应的包装类是Character
具体的可以看下面这个表格:

基本数据类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

8、包装类的构造方法的参数可以是什么类型的?包装类的构造方法是否可以无参数?

构造方法的参数值可以是基本数据类型的值,也可以是表示值的字符串。包装类的构造方法都是有参构造的,没有无参数构造方法。

9、包装类的实例是否可变?

包装类的实例是不可变的,创建包装对象之后,其内部的值就不能改变。

10、什么是自动装箱和自动拆箱?

将基本数据类型值转换为包装对象,称为装箱。将包装对象转换为基本数据类型的值称为拆箱

同时,从JDK1.5开始,基本数据类型和包装类之间可以进行自动转换。

今天学习的内容比较简单,主要就是抽象类和接口使用规范、知道Java是单重继承的、了解进行对象序列化的两个常用接口ComparableComparator、熟悉基本数据类型和包装类之间的转换

面向对象的面试题比较多,之后还会继续总结,如果小伙伴们有遇到其他相关的面试题,欢迎在评论区留言提出,我会把大家提出的总结到文章内`, 欢迎小伙伴们一起评论区打卡学习!小伙伴们可也在左方加我好友一起探讨学习!

我是灰小猿,我们下期见!

以上是关于Java核心面试宝典Day9面向对象常见面试题汇总的主要内容,如果未能解决你的问题,请参考以下文章

Java核心面试宝典Day10面向对象常见面试题汇总

Java核心面试宝典Day10面向对象常见面试题汇总

Java核心面试宝典Day6面向对象常见面试题汇总

Java核心面试宝典Day8面向对象常见面试题汇总

Java核心面试宝典Day7面向对象常见面试题汇总

Java核心面试宝典Day7面向对象常见面试题汇总