前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Java核心面试宝典】Day9、面向对象常见面试题汇总(四)

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

作者头像
灰小猿
发布2021-09-23 15:19:46
3130
发布2021-09-23 15:19:46
举报
文章被收录于专栏:灰小猿技术社区

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、熟悉基本数据类型和包装类之间的转换

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/08/05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、抽象类和接口是否可以被实例化?
  • 2、包含抽象方法的类是否必须被声明为抽象类,抽象类是否必须包含抽象方法?
  • 3、从继承角度而言,抽象类和接口的区别是什么?
  • 4、从变量、构造方法、方法的角度,阐述抽象类和接口的区别?
  • 5、哪两个接口可以实现对象之间的排序和比较大小?
  • 6、如何对一个数组中的多个对象按照不同的依据进行排序?
  • 7、除了首字母大写,包装类的名称和对象的基本数据类型是否一定相同?
  • 8、包装类的构造方法的参数可以是什么类型的?包装类的构造方法是否可以无参数?
  • 9、包装类的实例是否可变?
  • 10、什么是自动装箱和自动拆箱?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档