【Java核心面试宝典】Day9、面向对象常见面试题汇总(四)

举报
灰小猿 发表于 2021/08/08 08:25:49 2021/08/08
【摘要】 Hello,你好呀,我是灰小猿!一个超会写bug的程序猿!用坚持缔造技术、用指尖敲动未来!和很多小伙伴们一样,我也是一名奔波在Java道路上的“创造者”。也想靠技术来改未来,改变世界!因为我们坚信每一次敲动键盘都能让生活变得更智能、世界变得更有趣!在此专栏《Java核心面试宝典》记录我们备战梦想的【day 9】!今天继续和大家分享在面向对象中类与接口方面的常见面试题。不要小看任何一个基础技术...

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
具体的可以看下面这个表格:

基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

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

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

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

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

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

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

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

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

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

我是==灰小猿==,我们下期见!
请添加图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。