`
huangjinjin520
  • 浏览: 71418 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java面试官如何面试别人

阅读更多
 java面试官如何面试别人(一)
  java面试官的“面试心得”
  在公司当技术面试官几年间,从应届生到工作十几年的应聘者都遇到过。先表达一下我自己对面试的观点:
  1.笔试、面试去评价一个人肯定是不够准确的,了解一个人最准确的方式就是“路遥知马力,日久见人心”。通过一、二个小时内的做题、交流,只是没有其他办法下进行的无奈之举,所以通过了面试不代表有多成功,没通过也不代表有多失败。
  2.好的面试官本身交谈的时候就不应当把自己一个居高临下的角色上,应当把自己和应聘者当做两个做技术的人平等的交流,把自己当作权威往往就会受到观点的角度、语言表达、工作领域的惯性的制约。
  3.好的考察题目则是大家能经常接触,不同层次的人能有不同层次的答案,能从问题引申出后面继续讨论的话题。
  举个例子抛砖引玉,下面这个问题是我以前常问的,从应届生到工作十几年的人都问过:
  引用
  “地球人都知道,Java有个东西叫垃圾收集器,它让创建的对象不需要像c/cpp那样delete、free掉,你能不能谈谈,GC是在什么时候,对什么东西,做了什么事情?”
  我自己分析一下这个问题,首先是“什么时候”,不同层次的回答从低到高排列:
  1.系统空闲的时候。
  分析:这种回答大约占30%,遇到的话一般我就会准备转向别的话题,譬如算法、譬如SSH看看能否发掘一些他擅长的其他方面。
  2.系统自身决定,不可预测的时间/调用System.gc()的时候。
  分析:这种回答大约占55%,大部分应届生都能回答到这个答案,起码不能算错误是吧,后续应当细分一下到底是语言表述导致答案太笼统,还是本身就只有这样一个模糊的认识。
  3.能说出新生代、老年代结构,能提出minor gc/full gc
  分析:到了这个层次,基本上能说对GC运作有概念上的了解,譬如看过《深入JVM虚拟机》之类的。这部分不足10%。
  4.能说明minorgc/full gc的触发条件、OOM的触发条件,降低GC的调优的策略。
  分析:列举一些我期望的回答:eden满了minor gc,升到老年代的对象大于老年代剩余空间full gc,或者小于时被HandlePromotionFailure参数强制full gc;gc与非gc时间耗时超过了GCTimeRatio的限制引发OOM,调优诸如通过NewRatio控制新生代老年代比例,通过 MaxTenuringThreshold控制进入老年前生存次数等……能回答道这个阶段就会给我带来比较高的期望了,当然面试的时候正常人都不会记得每 个参数的拼写,我自己写这段话的时候也是翻过手册的。回答道这部分的小于2%。
  PS:加起来不到100%,是因为有确实少数直接说不知道,或者直接拒绝回答的= =#
  分析第二个问题:“对什么东西”:
  1.不使用的对象。
  分析:相当于没有回答,问题就是在问什么对象才是“不使用的对象”。大约占30%。
  2.超出作用域的对象/引用计数为空的对象。
  分析:这2个回答站了60%,相当高的比例,估计学校教java的时候老师就是这样教的。第一个回答没有解决我的疑问,gc到底怎么判断哪些对象在不在作 用域的?至于引用计数来判断对象是否可收集的,我可以会补充一个下面这个例子让面试者分析一下obj1、obj2是否会被GC掉?
  class C{
  publicObject x;
  }
  C obj1、obj2= new C();
  obj1.x = obj2;
  obj2.x = obj1;
  obj1、obj2= null;
  3.从gcroot开始搜索,搜索不到的对象。
  分析:根对象查找、标记已经算是不错了,小于5%的人可以回答道这步,估计是引用计数的方式太“深入民心”了。基本可以得到这个问题全部分数。
  PS:有面试者在这个问补充强引用、弱引用、软引用、幻影引用区别等,不是我想问的答案,但可以加分。
  4.从root搜索不到,而且经过第一次标记、清理后,仍然没有复活的对象。
  分析:我期待的答案。但是的确很少面试者会回答到这一点,所以在我心中回答道第3点我就给全部分数。
  最后由一个问题:“做什么事情”,这个问发挥的空间就太大了,不同年代、不同收集器的动作非常多。
  1.删除不使用的对象,腾出内存空间。
  分析:同问题2第一点。40%。
  2.补充一些诸如停止其他线程执行、运行finalize等的说明。
  分析:起码把问题具体化了一些,如果像答案1那样我很难在回答中找到话题继续展开,大约占40%的人。
  补充一点题外话,面试时我最怕遇到的回答就是“这个问题我说不上来,但是遇到的时候我上网搜一下能做出来”。做程序开发确实不是去锻炼茴香豆的“茴”有几 种写法,不死记硬背我同意,我不会纠语法、单词,但是多少你说个思路呀,要直接回答一个上网搜,我完全没办法从中获取可以评价应聘者的信息,也很难从回答 中继续发掘话题展开讨论。建议大家尽量回答引向自己熟悉的,可讨论的领域,展现给面试官最擅长的一面。
  3.能说出诸如新生代做的是复制清理、from survivor、to survivor是干啥用的、老年代做的是标记清理、标记清理后碎片要不要整理、复制清理和标记清理有有什么优劣势等。
  分析:也是看过《深入JVM虚拟机》的基本都能回答道这个程度,其实到这个程度我已经比较期待了。同样小于10%。
  4.除了3外,还能讲清楚串行、并行(整理/不整理碎片)、CMS等搜集器可作用的年代、特点、优劣势,并且能说明控制/调整收集器选择的方式。
  分析:同上面2个问题的第四点。
  最后介绍一下自己的背景,在一间不大不小的上市软件公司担任平台架构师,有3年左右的面试官经验,工作主要方向是大规模企业级应用,参与过若干个亿元级的项目的底层架构工作。
  java面试官如何面试别人(二)
  1.前台后台都做吗? 10分
  这一般是我的第一个问题,超过90%的人会回答:"都做,后台多一点,前台少一点"
  这不是我想要的答案,鬼都知道程序员都要多少涉及一下前台,后台更不用说了.
  碰到过一个聪明人,他是这么回答的: 前台js写的比较熟练,html的框架模板也能搭建的非常整齐美观,只是特效能力比较差
  这个问题我不想过多讨论,加分但不减分
  2.事务,什么是事务,为何用事务 10分
  大部分面试者,就会举各种各样的例子(比如银行存钱,这个最多)来说明这个问题,其实他们都理解.
  但这不是我想要的答案,我期望的答案只有一句:"保证数据的一致性和完整性" ,可惜只有5%左右的人答出来了
  这个问题可以大概了解出面试者的分析能力,以及语言总结能力,还有他们对这个玩意的理解程度
  答不出减分,举例子不加分
  3. 面向切面(AOP),原理是什么 10分
  这个就是对技能的掌握程度了
  大部分又是举例子,什么找中介啊之类的, 其实就是来掩盖他们懂一点实现逻辑,但是不知道源码怎么实现的.
  但还真是有学霸能把代理的原理讲出来,非常好.
  答不出减分,举例子不加分,讲出原理双倍分.
  4.两个项目之间如何通信 10分
  很基础的问题,答上来就有分,说明你接触或者了解过网络
  5.在上个问题基础之上问,碰到乱码怎么解决,utf-8和gbk可以直接转换么 10分
  大部分应聘者到这里基本就开始胡扯了. 有说声明字符串编码接收的,有说改项目编码的,各种各样五花八门.
  更有甚者,utf-8和gbk可以直接转换...
  直接说明了他们完全没有遇到过此类问题,也并不了解编码.
  答不出不减分,胡扯减分,答对双倍分.
  6.简述一项技术或设计模式的原理 20分
  这个几乎是送分的,但90%的人答不出.我很不解.
  答不出减分,答出加分

另外求职的各位同行,希望多锻炼自己的口才与技术.



  • 大小: 39.9 KB
0
0
分享到:
评论
1 楼 lfwer 2018-02-24  
简述一项技术或设计模式的原理 20分
  这个几乎是送分的,但90%的人答不出
我觉得是因为紧张才答不出吧

相关推荐

    JAVA面试问题,自己和别人总结

    JAVA面试问题总结 JAVA是一种广泛应用的编程语言,作为一名JAVA开发者,需要具备扎实的基础知识和实践经验。本文总结了常见的JAVA面试问题,涵盖了JAVA基础、JSP、Servlet、XML、J2EE、MVC、数据库等方面的知识点。...

    java面试官如何面试别人.docx

    在 Java 面试官面试候选人时,需要了解候选人的技术能力和思维方式。以下是面试官对候选人的评估标准和期望回答: 1. 系统空闲的时候。这种回答大约占 30%,表示候选人对 Java 的基本了解。 2. 系统自身确定,不行...

    java面试官如何面试别人.pdf

    。。。

    Java面试中最经常被问到的问题

    在Java面试中,面试官经常会提出一系列问题来评估候选人的技术实力和对Java语言的理解程度。以下是两个常见的问题及其详细解答: 1. **Applet与Application的区别是什么?** - **Applet** 是一个至少包含一个继承...

    Java面试突击-V2.0

    1. 写在简历上的东西一定要慎重,这可能是面试官大量提问的地方; 2. 大部分应届生找工作的硬伤是没有工作经验或实习经历; 3. 将自己的项目经历完美的展示出来非常重要。 笔主能力有限,如果有不对的地方或者和你想法...

    Java面试题大全.doc

    Java面试题大全.doc 本文档提供了 Java 面试题大全,旨在帮助软件工程师和 IT 学子更好地准备面试,提高面试技巧,获得更多的收获。文档涵盖了简历制作、面试技巧、技术问答等方面的内容,旨在帮助读者更好地准备...

    Java面试突击-V2.0.pdf

    Java面试突击-V2.0.pdf是一份专门针对Java面试的准备材料,本文将深入解析文档中的核心内容,并总结相关的知识点和面试技巧。 文档首先提到了面试前的准备工作。在这一部分中,文档强调了“运筹帷幄之后,决胜千里...

    2017年java面试宝典

    你要大胆地指出对方题目很模糊和你的观点,不要把面试官想得有多高,其实他和你就是差不多的,你想想,如果他把你招进去了,你们以后就是同事了,可不是差不多的吗? 关于就业薪水,如果你是应届生,那不能要高工资...

    Java面试宝典

    你要大胆地指出对方题目很模糊和你的观点,不要把面试官想得有多高,其实他和你就是差不多的,你想想,如果他把你招进去了,你们以后就是同事了,可不是差不多的吗? 关于就业薪水,如果你是应届生,那不能要高工资...

    关于Java面试,你应该准备这些知识点

     面试官在一开始会让你进行自我介绍,主要是想让你介绍一下自己做过的一些项目,看看你对这些项目的了解程度,因为很多人简历上写的项目并非都是从头到尾都参与的,有些只是参与并实现了其中的一些模块而已,或是...

    Java学习网站大全

    - **GitHub**:查找Java开源项目,学习别人的代码实现,提升实战能力。 - **Codecademy**:提供互动式的Java课程,适合初学者入门。 - **LeetCode**:通过解决编程题目来锻炼你的编程技巧,特别适合准备面试的...

    java项目经验怎么写.docx

    因为,面试官可以轻松地从你的沟通中发现问题。 其次,写项目经验时要以本人实际写过的代码为基础,然后再说清晰本人真正了解的深度。这可以让面试官了解你真正的技术实力。 再次,项目经验不在多,要在精,三个...

    专业程序员修炼之路 .zip

    如果面试官问“你有什么问题问我吗?”时,你就会回答面试官问你的优点是什么,应该如何回答?面试官问你的缺点是什么,应该如何回答?面试官询问期望薪资时,应该如何回答?如何写出更优秀的代码Java作为IT行业的...

    终面被拒的教训——做自己,别装蒜.docx

    对于销售无形商品与有形商品的问题,作者意识到,如果能结合自身的理解和经验,突出无形商品的服务性和长期价值,可能会给面试官留下更深刻的印象。而在谈论公司类型时,作者仅仅停留在表面的比喻上,没有深入挖掘...

    程序猿福利(面试问题)

    - **自我介绍的目的**:向面试官展示你具备完成工作的能力。 - **内容建议**: - 最强的技能:如精通Java、C++等编程语言。 - 最深入研究的知识领域:例如数据结构、算法设计等。 - 积极的个性特点:如团队合作...

    PHP程序员面试的自我介绍.pdf,这是一份不错的文件

    通过自我介绍,面试官可以了解到候选人的职业道德、工作态度、客户交流沟通能力、思维能力、团队合作能力、主动性等方面的情况。以下是 PHP 程序员面试自我介绍的几个要点: 一、职业道德和工作态度 * 工作认真、...

Global site tag (gtag.js) - Google Analytics