华为java高级工程师面试题(华为java工程师要求)

华为java高级工程师面试题(华为java工程师要求)大家好 我是贠学文 右上方 关注 每天为您分享 java 程序员需要掌握的知识点干货 凌晨四点的北京 前不久 我写了一篇 如何成为一个优秀面试官 的文章 具体可如下链接阅读 如何成为一个优秀的面试官 那么今天 在为大家分享下我在做 java 面试官的时候 经常问的问题 我曾经面试过很多中级 高级 资深 java 工程师 以及技术组长 在面试这些不同的级别的工程师的时候 我问的问题大体上都是相同的 只不过对于不同的级别 我对应聘者给我的回答的要求 是不同的 那下面就来说下我常问的问题 1



大家好,我是贠学文,点击右上方“关注”,每天为您分享java程序员需要掌握的知识点干货。


凌晨四点的北京

前不久,我写了一篇《如何成为一个优秀面试官》的文章,具体可点击如下链接阅读:

如何成为一个优秀的面试官

那么今天,在为大家分享下我在做java面试官的时候,经常问的问题。我曾经面试过很多中级、高级、资深java工程师,以及技术组长。在面试这些不同的级别的工程师的时候,我问的问题大体上都是相同的,只不过对于不同的级别,我对应聘者给我的回答的要求,是不同的。那下面就来说下我常问的问题。

1. 介绍自己最近做过的项目

这个问题,主要考察应聘者对于自己做过的项目的熟悉程度,以及对项目中的难点做剖析。我面试过很多应聘者,真的就连自己做过的项目都说不明白,那这种人就可以直接pass了。

2. 基础知识的考察

说出如下图所示代码的输出结果及原因:


此题主要考察的就是最基础的hashcode方法以和equals方法的使用,以及HashMap如何判断key是否重复。如果应聘者能够准确的回答,并且把原因都说的很清楚,那最起码可以证明,他的基础是没问题的。

记得曾经面试过一个高级java工程师,他的解决问题的能力、沟通表达、思维逻辑都特别的好,唯独就这个问题回答的不是很好,基础有些不太好。当然了,我最后还是让他面试通过了,但是最后我也跟他说了如下这番话:可以看得出来,你的解决问题的能力、沟通表达、思维逻辑都很好,但是到了你这个级别,连hashcode方法以和equals方法都说不明白的话,我觉得有点不太应该,所以你回去一定要多掌握掌握这些基础的东西,如果这些特别基础的东西都掌握的不太清楚的话,你就没有办法保证你写的代码一定没有问题。我们这些java工程师,其实拼到最后,拼的就是基础,如果你基础掌握的不好,你在后面提升自己的过程中,一定会遇到瓶颈的。

其实这个问题,还可以延伸出来以下问题:

1、hashmap的线程安全问题

2、如何高效的使用hashmap

3、什么样的数据适合用hashmap存储,什么样的数据适合用自定义的对象存储

可能后面两个问题,对中级的来说有些超纲了,答不上来也无所谓,但是你一旦答上来了,就是一个加分项。

有很多面试官,都喜欢问hashmap的红黑树结构、链表闭环的问题,concurrenthashmap如何加锁的问题。这些问题我从来不会去问,因为这些问题都是纯纯的八股文的问题,工作中根本用不到,没什么意义。我问的问题,都是可以在工作中用到的东西,这些问题,才能看出一个人的真实水平。

3. 解决问题的能力的考察

问题:如果一个后端的接口,在刚刚投产运行时,执行的效率很快,但是随着用的时间越来越长,它的执行效率变得越来越慢,你能想到有哪些情况会导致这个问题,并且如何解决?

其实这个问题能延伸出来的内容特别多,下图是我列举出来的可以延伸出来的内容,但是这些也并不是全部。


对于上图中提到的java本地的synchronized锁,我觉得有两点是比较重要的,一个是锁的粒度的问题,一个是可重入的问题,如果这两点了解的不清楚的话,在用的时候可能会出现问题,而对于这两点,我通常会用下面两道编程题来考察应聘者的掌握情况:



4. 对面向对象思想理解的考察

问题:如果后端有十个接口,这十个接口都在调用同一个公共方法,这个公共方法做的事情又比较多,现在有一个接口的业务发生了变化,需要调整这个公共接口,但是需要调整的只是其中一小部分。那么你如何利用面向对象的思想解决这个问题?使得既能满足业务的需求,又可能保证代码的可维护性和可扩展性?

大家也来思考下这个问题怎么做比较好呢?

5. 对代码习惯的考察

问题:是否有在平时地工作中积累一些自己认为比较好的代码规范?

记得我刚刚毕业进入第一家公司的时候,我就在工作中总结了很多的代码规范,比如:如何做解耦合、枚举的使用,map与自定义类的适合使用的场景等等。在总结这些规范的过程中,也让自己的编码水平得到了很大的提升。

但是我现在我在面试时问这个问题的时候,很多人都回答,用的是阿里的编码规范,但是我觉得,阿里的规范是很好,但是那终究是别人总结出来的东西,有些事情,只有你真的自己做过了,你才能在过程中受益。而且,我相信,只要你真的用心的做这件事了,你一定可以总结出来一些很好的,但是阿里规范中没有的规范。

6. 给应聘者一个展示自我的空间

问题:是否有在平时地工作过程中,遇到过一些疑难的,并且是自己独立解决的bug。

可能在前面的提问中,都是由我来主导这个面试的流程,那现在通过这个问题,把主导权交给应聘者,给应聘者一个展示自我的空间,看看你能发挥成什么样。

7. 考察应聘者的发展潜力

问题:对自己的未来有什么规划,并且为这个目标去努力?

我始终相信,一个对自己的未来有明确规划的人,他的能力一定比没有规划的人强很多,发展潜力也会很大。因为人需要有梦想,有了梦想,才会努力。

8. 通过一些外部信息来进一步综合考察

问题:以你现在的技术能力,在你们现在的团队中,可以排到第几?

问题:目前面试了几家,感觉如何,是否有收到offer?

8. 给应聘者一个提问自己的机会

尊重每一个应聘者,无论他的技术能力如何。

如何成为一个优秀的面试官

java中为什么要设计与面向对象理念违背的基本类型?

史上将String常量池讲得最透彻的文章

String为什么不可变

贠学文,具有多有经验的java开发工程师,业余时间利用头条分享技术知识点与自己对技术的感悟,帮助对自己未来感到迷茫的程序员,在技术上得到提升。结识一些志同道合的朋友,相互促进,共同进步。

编程小号
上一篇 2025-03-10 21:46
下一篇 2025-03-04 09:11

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/38661.html