Java面试题精粹(基础知识)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面试题精粹(基础知识)相关的知识,希望对你有一定的参考价值。

本篇博文是自己针对网络上已出现的Java面试题帖子汇总,汇总并不是给出链接或直接转载内容,而是分析对比并整理出各帖子中常见、高频的面试题,这些经常露脸的面试题透出面试的趋势(为什么可以成为经典的面试题)及面试官的共通点。而作为求职者、技术爱好者的我们不仅要能够自信、精准得回答这些问题,更要知道为什么出这些问题,面试官想考察我们什么或希望我们给出怎样的回答,适当的再对回答进行拓展以达到更好的效果。面试本身包含了一些心理上的东西,面试官对于问题是有一个心中期许的答案,面试者若能够触摸到边缘或击中要害,结果自然不会差。更最要的是当我们能够清楚对手的出招套路时,我们能够全面地检视自己调整思路,面出最好的状态。

Java面试题精粹系列将分为基础知识、多线程、网站架构、数据结构、数据库、性能及安全、设计模式、Linux、算法(暂定),共计九个模块,本篇以基础知识为主,下面开始讲解具体的面试题。

1.面向对象的特征/特性/特点有哪些?

  先简答出四个点:抽象、封装、继承、多态,接着对每个点表达自己的见解。

  抽象:对同一群/同一类别事物根据实际业务需要将它们公共的特征和行为剥离出来构建成一个类,这一过程就称之为抽象,而抽象的结果就是得到一个类。然后刚刚前面提到的特征就对应类的属性,行为就对应类的方法。而在不同业务场景下所构建的类中的属性和方法存在细微上的差别。

 

  封装:把公共部分的/使用频繁的代码块/代码段整合到一个方法或一个类(例如工具类)中,来对外提供服务并隐藏具体实现。调用者只需关注该方法或该类如何使用而并不需要知道其内部是如何实现的,而对于提供者来说可以方便的对这些提供服务的代码进行维护,这种两者的不同表现是对代码最好的保护(所带来的益处)

 

我们在实际开发中经常用到的第三方jar包就是封装的一种表现形式。

 

  继承:一个类A获得了另外一个类B的公共属性和方法,且A能够直接使用这些东西并在必要情况下按已所需改造这些东西,两者之间因此产生了一种关联关系,称之为继承。子承父业是对继承这个词语比较形象的比喻。

 

例如子类私家车、公交车、自行车、摩托车、货车都继承自父类车,它们从父类继承了属性方形盘、车轮、车座...继承了方法开车、载人、刹车...根据自身实际需要子类对这些属性和方法都进行了一定改造,所以有了不同表现。例如方向盘,私家车、公交车、货车都是圆形的,自行车、摩托车则是以把手形式表现,车轮各自需要的数量不一样,能够承载的人数也不一样,刹车的实现更不一样。

 

继承使得代码有了延续性,可以使用的就直接使用,不能使用的就改造,减少了对公共可复用部分的重复定义。

  多态:定义不够精炼,后需补充。

 

以上是关于Java面试题精粹(基础知识)的主要内容,如果未能解决你的问题,请参考以下文章

Android面试题Java基础

2020 年最新版 Java 面试题大全(文末附参考答案)

2020年最新版Java面试题大全(文末附参考答案)

Java面试题

java基础面试题都有哪些?

Android面试题Java虚拟机