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

华为java高级工程师面试题(华为java工程师要求)p id 1P7H21T0 大家好 我是贠学文 点击右上方 关注 每天为您分享 java 程序员需要掌握的知识点干货 p p class f center p

大家好,我是讯享网,很高兴认识大家。




讯享网

 <p id="1P7H21T0">大家好,我是贠学文,点击右上方“关注”,每天为您分享java程序员需要掌握的知识点干货。</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0508%2F27fe3b8bj00ruc9oh000id000hs008np.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="1P7H21T2">凌晨四点的北京</p><p id="1P7H21T3">前不久,我写了一篇《如何成为一个优秀面试官》的文章,具体可点击如下链接阅读:</p><p id="1P7H21T4">如何成为一个优秀的面试官</p><p id="1P7H21T5">那么今天,在为大家分享下我在做java面试官的时候,经常问的问题。我曾经面试过很多中级、高级、资深java工程师,以及技术组长。在面试这些不同的级别的工程师的时候,我问的问题大体上都是相同的,只不过对于不同的级别,我对应聘者给我的回答的要求,是不同的。那下面就来说下我常问的问题。</p><p id="1P7H21T6">1. 介绍自己最近做过的项目</p><p id="1P7H21T7">这个问题,主要考察应聘者对于自己做过的项目的熟悉程度,以及对项目中的难点做剖析。我面试过很多应聘者,真的就连自己做过的项目都说不明白,那这种人就可以直接pass了。</p><p id="1P7H21T8">2. 基础知识的考察</p><p id="1P7H21T9">说出如下图所示代码的输出结果及原因:</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0508%2F4cde0f4fj00ruc9oi000wd000hs00dyp.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="1P7H21TB">此题主要考察的就是最基础的hashcode方法以和equals方法的使用,以及HashMap如何判断key是否重复。如果应聘者能够准确的回答,并且把原因都说的很清楚,那最起码可以证明,他的基础是没问题的。</p><p id="1P7H21TC">记得曾经面试过一个高级java工程师,他的解决问题的能力、沟通表达、思维逻辑都特别的好,唯独就这个问题回答的不是很好,基础有些不太好。当然了,我最后还是让他面试通过了,但是最后我也跟他说了如下这番话:可以看得出来,你的解决问题的能力、沟通表达、思维逻辑都很好,但是到了你这个级别,连hashcode方法以和equals方法都说不明白的话,我觉得有点不太应该,所以你回去一定要多掌握掌握这些基础的东西,如果这些特别基础的东西都掌握的不太清楚的话,你就没有办法保证你写的代码一定没有问题。我们这些java工程师,其实拼到最后,拼的就是基础,如果你基础掌握的不好,你在后面提升自己的过程中,一定会遇到瓶颈的。</p><p id="1P7H21TD">其实这个问题,还可以延伸出来以下问题:</p><p id="1P7H21TE">1、hashmap的线程安全问题</p><p id="1P7H21TF">2、如何高效的使用hashmap</p><p id="1P7H21TG">3、什么样的数据适合用hashmap存储,什么样的数据适合用自定义的对象存储</p><p id="1P7H21TH">可能后面两个问题,对中级的来说有些超纲了,答不上来也无所谓,但是你一旦答上来了,就是一个加分项。</p><p id="1P7H21TI">有很多面试官,都喜欢问hashmap的红黑树结构、链表闭环的问题,concurrenthashmap如何加锁的问题。这些问题我从来不会去问,因为这些问题都是纯纯的八股文的问题,工作中根本用不到,没什么意义。我问的问题,都是可以在工作中用到的东西,这些问题,才能看出一个人的真实水平。</p><p id="1P7H21TJ">3. 解决问题的能力的考察</p><p id="1P7H21TK">问题:如果一个后端的接口,在刚刚投产运行时,执行的效率很快,但是随着用的时间越来越长,它的执行效率变得越来越慢,你能想到有哪些情况会导致这个问题,并且如何解决?</p><p id="1P7H21TL">其实这个问题能延伸出来的内容特别多,下图是我列举出来的可以延伸出来的内容,但是这些也并不是全部。</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0508%2Fce56f31fj00ruc9oj000td000hs00c3p.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="1P7H21TN">对于上图中提到的java本地的synchronized锁,我觉得有两点是比较重要的,一个是锁的粒度的问题,一个是可重入的问题,如果这两点了解的不清楚的话,在用的时候可能会出现问题,而对于这两点,我通常会用下面两道编程题来考察应聘者的掌握情况:</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0508%2Faeeb1946j00ruc9ok0014d000hs00ilp.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0508%2F9f65eda5j00ruc9om000zd000hs00jap.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="1P7H21TQ">4. 对面向对象思想理解的考察</p><p id="1P7H21TR">问题:如果后端有十个接口,这十个接口都在调用同一个公共方法,这个公共方法做的事情又比较多,现在有一个接口的业务发生了变化,需要调整这个公共接口,但是需要调整的只是其中一小部分。那么你如何利用面向对象的思想解决这个问题?使得既能满足业务的需求,又可能保证代码的可维护性和可扩展性?</p><p id="1P7H21TS">大家也来思考下这个问题怎么做比较好呢?</p><p id="1P7H21TT">5. 对代码习惯的考察</p><p id="1P7H21TU">问题:是否有在平时地工作中积累一些自己认为比较好的代码规范?</p><p id="1P7H21TV">记得我刚刚毕业进入第一家公司的时候,我就在工作中总结了很多的代码规范,比如:如何做解耦合、枚举的使用,map与自定义类的适合使用的场景等等。在总结这些规范的过程中,也让自己的编码水平得到了很大的提升。</p><p id="1P7H21U0">但是我现在我在面试时问这个问题的时候,很多人都回答,用的是阿里的编码规范,但是我觉得,阿里的规范是很好,但是那终究是别人总结出来的东西,有些事情,只有你真的自己做过了,你才能在过程中受益。而且,我相信,只要你真的用心的做这件事了,你一定可以总结出来一些很好的,但是阿里规范中没有的规范。</p><p id="1P7H21U1">6. 给应聘者一个展示自我的空间</p><p id="1P7H21U2">问题:是否有在平时地工作过程中,遇到过一些疑难的,并且是自己独立解决的bug。</p><p id="1P7H21U3">可能在前面的提问中,都是由我来主导这个面试的流程,那现在通过这个问题,把主导权交给应聘者,给应聘者一个展示自我的空间,看看你能发挥成什么样。</p><p id="1P7H21U4">7. 考察应聘者的发展潜力</p><p id="1P7H21U5">问题:对自己的未来有什么规划,并且为这个目标去努力?</p><p id="1P7H21U6">我始终相信,一个对自己的未来有明确规划的人,他的能力一定比没有规划的人强很多,发展潜力也会很大。因为人需要有梦想,有了梦想,才会努力。</p><p id="1P7H21U7">8. 通过一些外部信息来进一步综合考察</p><p id="1P7H21U8">问题:以你现在的技术能力,在你们现在的团队中,可以排到第几?</p><p id="1P7H21U9">问题:目前面试了几家,感觉如何,是否有收到offer?</p><p id="1P7H21UA">8. 给应聘者一个提问自己的机会</p><p id="1P7H21UB">尊重每一个应聘者,无论他的技术能力如何。</p><p id="1P7H21UD">如何成为一个优秀的面试官</p><p id="1P7H21UE">java中为什么要设计与面向对象理念违背的基本类型?</p><p id="1P7H21UF">史上将String常量池讲得最透彻的文章</p><p id="1P7H21UG">String为什么不可变</p><p id="1P7H21UH">贠学文,具有多有经验的java开发工程师,业余时间利用头条分享技术知识点与自己对技术的感悟,帮助对自己未来感到迷茫的程序员,在技术上得到提升。结识一些志同道合的朋友,相互促进,共同进步。</p> 

讯享网
小讯
上一篇 2025-05-03 23:23
下一篇 2025-05-21 14:29

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/168859.html