nav_xian
返回返回 教育头条

java面试中如何回答技术性问题

学习经验

2021年03月26日 11:57:17
程序员面试中,面试官会经常询问一些技术性的问题,有的问题可能比较简单,都是历年的笔试面试真题,求职者在平时的复习中会经常遇到,应对自然不在话下。但有的题目可 能比较难,来源于 Google、Microsoft 等大企业的题库或是企业自己为了招聘需要设计的题库,求职者可能从来没见过或者从来都不能完整地、独立地想到解决方案,而这些题目往往 又是企业比较关注的。 如何能够回答好这些技术性的问题呢?编者建议:会做的一定要拿满分,不会做的一定要拿部分分。即对于简单的题目,求职者要努力做到完全正确,毕竟这些题目,只要复习得当,完全回答正确一点问题都没有。一般而言,在回答技术性问题时,求职者大可不必胆战心惊,除非是没学过的新知识, 否则,一般都可以采用以下六个步骤来分析解决。
(1)勇于提问
面试官提出的问题,有时候可能过于抽象,让求职者不知所措,或者无从下手,所以, 对于面试中的疑惑,求职者要勇敢地提出来,多向面试官提问,把不明确或二义性的情况都 问清楚。不用担心你的问题会让面试官烦恼,影响你的面试成绩,相反还对面试结果产生积 极影响:一方面,提问可以让面试官知道你在思考,也可以给面试官一个心思缜密的好印象; 另一方面,方便后续自己对问题的解答。 例如,面试官提出一个问题:设计一个有效的排序算法。求职者可能丈二和尚摸不到头 脑,排序对象是链表还是数组?数据类型是整型、浮点型、字符型还是结构体类型?数据基 本有序还是杂乱无序?数据量有多大,1000 以内还是百万以上个数?此时,求职者大可以 将自己的疑问提出来,问题清楚了,解决方案也自然就出来了。
(2)有效设计
对于技术性问题,如何才能打动面试官?完成基本功能是必须的,仅此而已吗?显然不 是,完成基本功能顶多只能算及格水平,要想达到优秀水平,至少还应该考虑更多的内容, 以排序算法为例:时间是否有效?空间是否有效?数据量不大时也许没有问题,如果是海量 数据呢?是否考虑了相关环节,例如数据的“增改查”?是否考虑了代码的可扩展性、安 全性、完整性以及鲁棒性?如果是网站设计,是否考虑了大规模数据访问的情况?是否需要 考虑分布式系统架构?是否考虑了开源框架的使用?
(3)伪代码先行
有时候实际代码会比较复杂,上手就写很有可能会漏洞百出、条理混乱,所以,求职者 可以首先征求面试官的同意,在编写实际代码前,写一个伪代码或者画好流程图,这样做往 往会让思路更加清晰明了。 切记在写伪代码前要告诉面试官,他们很有可能对你产生误解,认为你只会纸上谈兵, 实际编码能力却不行。只有征得了他们的允许,方可先写伪代码。
(4)控制节奏
如果是算法设计题,面试官都会给求职者一个时间用以完成设计,一般为 20min 左 右。完成得太慢,会给面试官留下能力不行的印象,但完成得太快,如果不能保证百分百正 确,也会给面试官留下毛手毛脚的印象,速度快当然是好事情,但只有速度,没有质量,速 度快根本不会给面试加分。所以,编者建议,回答问题的节奏不要太慢,也不要太快, 如果实在是完成得比较快,也不要急于提交给面试官,建议能够利用剩余的时间,认真仔细 地检查一些边界情况、异常情况及极性情况等,看是否也能满足要求。
(5)规范编码
回答技术性问题时,多数都是纸上写代码,离开了编译器的帮助,求职者要想让面试官 对自己的代码一看即懂,除了字迹要工整,不能眉飞色舞以外,建议是能够严格遵循编码规 范:函数变量命名、换行缩进、语句嵌套和代码布局等,同时,代码设计应该具有完整性, 保证代码能够完成基本功能、输入边界值能够得到正确地输出、对各种不合规范的非法输入 能够做出合理的错误处理,否则,写出的代码即使无比有效,面试官也不一定看得懂或者看 起来非常费劲,这些对面试成功都是非常不利的。

(6)精心测试
在软件界,有一句真理:任何软件都有 bug。但不能因为如此就纵容自己的代码, 允许错误百出。尤其是在面试过程中,实现功能也许并不十分困难,困难的是在有限的 时间内设计出的算法,各种异常是否都得到了有效的处理,各种边界值是否都在算法设 计的范围内。 测试代码是让代码变得完备的有效方式之一,也是一名优秀程序员必备的素质之一。所 以,在编写代码前,求职者建议能够了解一些基本的测试知识,做 一些基本的单元测试、功 能测试、边界测试以及异常测试。 在回答技术性问题时,注意在思考问题的时候,千万别一句话都不说,面试官面试 的时间是有限的,他们希望在有限的时间内尽可能地去了解求职者,如果求职者坐在那 里一句话不说,不仅会让面试官觉得求职者技术水平不行,思考问题能力以及沟通能力 可能都存在问题。 其实,在面试时,求职者往往会存在一种思想误区,把技术性面试的结果看得太重要了。 面试过程中的技术性问题,结果固然重要,但也并非重要的内容,因为面试官看重的不仅仅是结果,还包括求职者在解决问题的过程中体现出来的逻辑思维能力以及分析问题 的能力。所以,求职者在与面试官的博弈中,要适当地提问,通过提问获取面试官的反馈信 息,并抓住这些有用的信息进行辅助思考,从而博得面试官的欢心,进而提高面试的成功率。

上述就是教育宝头条介绍的java面试中如何回答技术性问题完整信息,想要查看更多的JAVA认证资讯,敬请关注我的微信18560125702,还可免费获取学习攻略哦!返回教育宝头条

【免责声明】本文仅代表作者本人观点,与教育宝无关。教育宝对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何保证。请读者仅作参考,特此声明!

相关推荐

400-029-0997