好运快3全天计划_最近面试java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前的准备

  • 时间:
  • 浏览:0

    在上周,我密集面试了若干位Java后端的候选人,工作经验在3到5年间。我的标准虽然不繁杂:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架,我相信其它公司招初级开发时,应该也照着你你你是什么 标准来面的。

    我也知道,不少候选人能力虽然不差,但面试时没准备或不需要说,很久的人不可能 在进团队干活后虽然能达到期望,但不可能 就无法通过面试,但面试官一个劲只根据面试情况报告来判断。

    但现实情况报告是,大多数人不可能 面试前没准备,或准备依据不得当。要知道,亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 平时干活更偏重于业务,不需要可能 一定量接触到算法,数据形态,底层代码累似 面试必问的现象报告 点,换句话说,面试准备点和平时工作要点匹配度很小。

    作为面试官,我不都能够根据候选人的回答来决定面试结果。不过,与人方便买车人方便,全都我在本文里,将通过许多常用的现象报告 来介绍面试的准备技巧。亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 在看很久该感叹:假若依据得当,准备面试第一不能自己,第二用的时间也不会太多。

    为甚让在买车人的两本书里,Java Web轻量级开发面试教程Java核心技术及面试指南,完整性地给出了其它相关面试技巧

框架是重点,但别我应该 感觉你只会山寨别人的代码

    在面试前,我会阅读简历以查看候选人在框架方面的项目经验,在候选人的项目介绍的环节,我也会着重关注候选人最近的框架经验,目前比较热门的是SSM。

    不过,一般工作在5年内的候选人,大多仅仅是能“山寨”别人的代码,也也不说能在现有框架的基础上,照着别人写的流程,扩展出新的功能模块。比如要写个股票挂单的功能模块,是会模仿现有的下单流程,为甚让很久端到后端再到数据库,依样画葫芦写一遍,最多把功能相关的代码点改掉。

    

    虽然亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 每买车人都很久过来的,但在面试时,不可能 你仅仅表现出很久的能力,就和大多数人的水平差太多了,在这点就没法 体现出你的优势了。

    亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 知道,不可能 单纯使用SSM框架,大多数项目后该有痛点。比如数据库性能差,不可能 业务模块比较繁杂,并发量比较高,用Spring MVC里的Controller无法满足跳转的需求。全都我一般后该主动问:你除了依照现有框架写业务代码时,还做了那先 改动?

     我听到的回答有:增加了Redis缓存,以处里频繁调用许多不变的数据。不可能 ,在MyBitas的xml里,select励志的话 where条件有isnull,即你你你是什么 值有就增加有一一有一个多where条件,对此,会对任何有一一有一个多where增加有一一有一个多不带isnull的查询条件,以免该励志的话 当传入参数否有null时,做全表扫描。不可能 ,干脆说,后端异步返回的数据量很大,时间很长,我在项目里就调大了异步返回的最大时间,不可能 对返回信息做了压缩处里,以增加网络传输性能。

    对于你你你是什么 现象报告 ,帮我知道听到那先 回答,我只关心回答符不符逻辑。一般假若答对,我应该 会给出“在框架层面有买车人的体会,有一定的了解”,为甚让,我应该 只会给出“不都能够在项目经理带领下编写框架代码,对框架本身了解太多”。

    虽然,在准备面试时,归纳框架里的要点之全都难,我应该 不信所一群人在做项目时许多积累也没,假若他说出来,都能够说,这方面你就碾压了将近7成的竞争者。 

2 别单纯看单机版的框架,适当了解些分布式

    此外,在描述项目里框架技术时,最好你再带些分布式的技术。下面我列些亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 都能够准备的分布式技术。

    1 反向代理方面,nginx的基本配置,比如怎样通过lua语言设置规则,怎样设置session粘滞。不可能 都能够,再看些nginx的底层,比如协议,集群设置,失效转移等。

    2 远程调用dubbo方面,都能够看下dubbo和zookeeper整合的知识点,再深一步,了解下dubbo底层的传输协议和序列化依据。

    3 消息队列方面,都能够看下kafka或任意本身组件的使用依据,简单点都能够看下配置,工作组的设置,再深入点,都能够看下Kafka集群,持久化的依据,以及发送消息是用长连接还是短拦截。

    以上仅仅是用有一个组件举例,亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 还都能够看下Redis缓存,日志框架,MyCAT分库分表等。准备的依据有两大类,第一是要会说缘何用,这比较简单,能通过配置文件搭建成有一一有一个多功能模块即可,第二是都能够适当读些底层代码,以此了解下协议,集群和失效转移累似 的高级知识点。 

    不可能 能在面试中侃侃而谈分布式组件的底层,没法 得到的评价就会比较好了,比如“深入了解框架底层”,或“框架经验充裕”,很久就算去面试架构师也行了,更何况是高级开发。

3 数据库方面,别就知道增完整性查,得了解性能优化

    在实际项目里,大多数线程运行员用到的不可能 仅仅是增完整性查,当亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 用Mybatis时,你你你是什么 情况报告更普遍。不过不可能 你面试时也很久表现,估计你的能力就和其它竞争者差太多了。

    这方面,我应该 准备如下的技能。

    1 SQL高级方面,比如group by, having,左连接,子查询(带in),行转列等高级用法。

    2 建表方面,我应该 考虑下,你项目是用三范式还是反范式,理由是那先 ?

    3 尤其是优化,我应该 准备下怎样通过执行计划查看SQL励志的话 改进点的依据,不可能 其它能改善SQL性能的依据(比如建索引等)。

    4 不可能 你感觉有能力,还都能够准备些MySQL集群,MyCAT分库分表的技能。比如通过LVS+Keepalived实现MySQL负载均衡,MyCAT的配置依据。同样,不可能 都能够,也看些相关的底层代码。

    哪怕你在前三点表现一般,没法 要花费能够超越将近一般的候选人,尤其当你在SQL优化方面表现非常好,没法 你在面试高级开发时,数据库层面一定是达标的,不可能 你连第四点也回答非常好,没法 恭喜你,你在数据库方面的能力甚至达到了初级架构的级别。

    

4 Java核心方面,围绕数据形态和性能优化准备面试题

    Java核心这块,网上的面试题全都,不过在此之外,亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 还应当着重关注集合(即数据形态)和线程运行并发这两块,在此基础上,亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 都能够准备些设计模式和虚拟机的说辞。

    下面列些我一般会问的帕累托图现象报告 :

    1 String a = "123"; String b = "123"; a==b的结果是那先 ? 这蕴藏了内存,String存储依据等诸多知识点。

    2 HashMap里的hashcode依据和equal依据那先 很久时要重写?不可能 不重写会有那先 后果?对此亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 都能够进一步了解HashMap(甚至ConcurrentHashMap)的底层实现。

    3 ArrayList和LinkedList底层实现有那先 差别?它们所一群人适用于那先 场合?对此亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 也都能够了解下相关底层代码。

    4 volatile关键字有那先 作用?由此展开,亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 都能够了解下线程运行内存和堆内存的差别。

    5 CompletableFuture,你你你是什么 是JDK1.8里的新形态,通过它缘何实现线程运行并发控制?

    6 JVM里,new出来的对象是在哪个区?再深入一下,问下怎样查看和优化JVM虚拟机内存。

    7 Java的静态代理和动态代理有那先 差别?最好结合底层代码来说。

    通过上述的现象报告 点,我虽然不仅仅等候在“会用”级别,比如我不需要问怎样在ArrayList里放元素。亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 都能够看后,上述现象报告 蕴藏了“线程运行并发”,“JVM优化”,“数据形态对象底层代码”等细节,亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 也都能够举一反三,通过看许多高级知识,多准备些其它累似 面试题。

    亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 知道,目前Java开发是以Web框架为主,没法 为那先 时要问Java核心知识点呢?我你你你是什么 是有切身体会的。

    很久在我团队里,我见过有一一有一个多人,有一一有一个多是就会干活,具体表现是会用Java核心基本的API,为甚让也没法 深入了解的意愿(估计帮我知道该缘何深入了解),另一位平时专门会看些Java并发,虚拟机等的高级知识。过了二天 很久,后者的能力快速升级到高级开发,不可能 对JAVA核心知识点了解很透彻,全都看许多分布式组件的底层实现没那先 现象报告 报告 。 而前者,一个劲在重复劳动,能力也只一个劲等候在“会干活”的层面。 

     而在现实的面试中,不可能 很熟悉Java核心知识点,估计升高级开发都难,更别说是面试架构师级别的岗位了。 

5 Linux方面,要花费了解怎样看日志排查现象报告

    不可能 候选人能证明买车人有“排查现象报告 ”和“处里现象报告 ”的能力,这绝对是个加分项,但缘何证明?

    目前大多数的互联网项目,否有部署在Linux上,也也不说,日志否有在Linux,下面归纳些实际的Linux操作。

    1 能通过less命令打开文件,通过Shift+G到达文件底部,再通过?+关键字的依据来根据关键来搜索信息。

    2 能通过grep的依据查关键字,具体用法是, grep 关键字 文件名,不可能 要两次在结果里查找励志的话 ,就用grep 关键字1 文件名 | 关键字2 --color。最后--color是高亮关键字。

    3 能通过vi来编辑文件。

    4 能通过chmod来设置文件的权限。

    当然,还有更多更实用的Linux命令,但在实际面试过程中,不少候选人连第一根linux命令也帮我知道。还是这句话,你哪怕知道些很基本的,也比一般人强了。 

6 通读一段底层代码,作为加分项

    怎样证明买车人对有一一有一个多知识点非常了解?莫过于能通过底层代码来说明。我在和不少工作经验在5年之内的线程运行员沟通时,不少人认为这不能自己?虽然,不可能 要通过阅读底层代码了解分布式组件,那难度不小,但不可能 如下帕累托图的底层代码,之全都难懂。

    1 ArrayList,LinkedList的底层代码里,蕴藏着基于数组和链表的实现依据,不可能 亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 能以此讲清楚扩容,“通过枚举器遍历“等依据,绝对能证明买车人。

    2 HashMap直接对应着Hash表你你你是什么 数据形态,在HashMap的底层代码里,蕴藏着hashcode的put,get等的操作,甚至在ConcurrentHashMap里,还蕴藏着Lock的逻辑。我相信,不可能 亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 在面试中,看看而言ConcurrentHashMap,再结合在纸顶端说边画,那一定能征服面试官。

    3 都能够看下静态代理和动态代理的实现依据,再深入一下,都能够看下Spring AOP里的实现代码。

    4 或许Spirng IOC和MVC的底层实现代码比较难看懂,但亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 都能够说些关键的类,根据关键流程说下它们的实现依据。 

    虽然准备的底层代码之全时要多,为甚让也不限于在哪个方面,比如集合里基于红黑树的TreeSet,基于NIO的开源框架,甚至分布式组件的Dubbo,都都能够准备。为甚让准备时之全时要背出所有的底层(事实上不能自己做到),你假若能结合许多重要的类和依据,讲清楚思路即可(比如讲清楚HashMap怎样通过hashCode快速定位)。

    没法 在面试时,怎样找到个好不可能 说出你准备好的上述底层代码?在面试时,总会被问到集合,Spring MVC框架等相关知识点,你在回答时,顺便说一句,“我还了解这块的底层实现”,没法 面试官后该追问,没法 你就都能够说出来了。

     之全都小看你你你是什么 对候选人的帮助,一旦你讲了,假若意思到位,没法 要花费能得到个“肯积极专业“的评价,不可能 描述很清楚,没法 评价就会升级到“熟悉Java核心技能(或Spring MVC),且基本功扎实”。要知道,面试中,很少一群人能讲清楚底层代码,全都你抛出了你你你是什么 话题,哪怕最后没达到预期效果,面试官也不会由此对你降低评价。全都说,准备这块绝对是“有百利而无一害”的挣钱买卖。

7 一切的一切,把上述技能嵌入到你做过的项目里

    在面试过程中,我一个劲会听到许多比较遗憾的回答,比如候选人对SQL优化技能讲得头头是道,但最后得知,这是他平时协会时掌握的,并没用在实际项目里。

    当然这总比不说要好,全都我会写下“在平时协会过SQL优化技能”,但不可能 在项目里实践过,没法 我应该 会写下“有实际数据库SQL优化的技能”。亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 都能够对比下两者的差别,有一一有一个多是偏重理论,有一一有一个多是直接能干活了。虽然,全都场景里,我应该 不信在实际项目里一定没法 实践过SQL优化技能。

    从你你你是什么 案例中,帮我告诉亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 的是,你很久费了千辛万苦(虽然依据方向得到,也不用费太多精力)准备的全都技能和说辞,最后应该落实到你的实际项目里。

    比如你有过在Linux日志里查询关键字排查现象报告 的经验,在描述时我应该 带一句,在很久的项目里我应该 很久干的。又如,你通过看底层代码,了解了TreeSet和HashSet的差别以及它们的适用范围,没法 你就都能够回想下你很久做的项目,否有有有个场景仅仅适用于TreeSet?不可能 有,没法 你就都能够适当描述下项目的需求,为甚让说,通过读底层代码,我了解了两者的差别,为甚让在你你你是什么 实际需求里,我应该 用了TreeSet,为甚让我还专门做了对比性试验,发现用TreeSet比HashSet要高xx个百分点。

    请记得,“实践经验”一定比“理论经验”值钱,为甚让大多数你知道的理论上的经验,一定在你的项目里用过。全都,不可能 你仅仅让面试官感觉你不都能够“理论经验”,那就太亏了。

 

8 小结:本文更多讲述的准备面试的依据

    本文给出的面试题之全都多,但本文并没法 打算给出太多的面试题。从本文里,亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 更多看后的是面试官发现的诸多候选人的痛点。

    本文的用意是让亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 别再重蹈别人的覆辙,这还不算,本文还给出了不少准备面试的依据。你的能力或许比别人出众,但不可能 你准备面试的依据和别人差太多,不可能 就拿你在项目里干的活来说事,而没法 归纳出你在项目中的亮点,没法 面试官还真的会看扁你。

    本文里提到的依据和技能,不可能 能对亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 有所帮助,请亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 帮忙转发,不可能 点击下面的按钮来“推荐本文”,不可能 通过评论来参与讨论。

    本文欢迎转载,不过请注明文章来源,请同去给出买车人写的两本书的连接Java Web轻量级开发面试教程Java核心技术及面试指南

    再次感谢亲戚亲戚一群人歌词 歌词 一群人歌词 歌词 读完本文。