【实战】面试高频问题汇总01 - JAVA后端

简介

今年不只是世界发生大事大变化的一年,也是我职业踏入新阶段的一年。上半年一直在为面试作准备,也面试了几家公司,针对一些常见问题与答案(没有答案的面试总结都是耍流氓),常见的加分项作了一些梳理,但愿可以帮到你们。java

前情提要:git

  • base 杭州;
  • 面试题大多来自字节、阿里系以及一些中型公司;
  • 楼主3年java经验;
  • 已入职阿里,欢迎各路大神内推:job.alibaba.com/zhaopin/pos…

本篇主要讲讲怎么讲好本身作的项目和hr面试会遇到的常见问题与解析,技术篇因为篇幅过长还在更新,请关注个人掘金帐号(sidfate)~以及我整理的面经项目:github地址github

项目篇

面试官在问到项目经历的时候,每每会问这么一个问题:面试

你作的项目中有哪些困难的点或者哪些亮点,你是怎么解决/实现的?spring

不少同窗遇到这种问题就不知道怎么回答,感受一直在作业务就这样一路过来了,包括一开始的我在面试中也没有好好回答。后面我试着沉淀一下本身所作过的项目,回忆下项目中作到个每一个功能点是怎么分析怎么实现的,遇到哪些困难是怎么解决的,而后试着梳理下来,特别是可以整理成知识点。设计模式

可是有同窗可能说了:我整理了半天也没整理出啥,想来想去也只有CURD的东东,作的只是一个小项目,怎么办?当你以为本身作的项目拿不出手的时候,试着去想象一下你能够作的,试着去复杂化你的项目,例如优化,是否是能够用设计模式重写模块重复逻辑,例如若是项目遇到高并发高流量的时候怎么应对,经过对本身的压测能够提升性高等等,下面我会讲的更详细写。markdown

可是注意的是必定要是本身实践的内容拿来讲,若是只是说说别人作的东西极可能就会尴尬的暴露知识盲区。并发

再者,这个问题若是咱们站在面试官的角度想一想,他到底想问什么,我以为是3个方面:你的技术驱动力,你的技术格局,解决问题而且可以沉淀下来的能力。高并发

  • 技术驱动力:你有没有经过一些技术手段改进过你项目,试着讲讲你作过的优化用了哪些技术,面试官能够顺着着这些技术拓展开来问。
  • 技术格局:你在作需求或者项目的时候有没有考虑兼容性和可扩展性,在以后遇到类似需求的时候能够减小重复开发,甚至提升整个的开发效率。试着拿一个具体例子讲讲,例如用spring-aop无侵入的完成接口版本兼容,使用反射动态的执行处理类。
  • 复盘能力:复盘能力也很重要,你要从繁多的需求中提炼出类似点,从遇到的问题中寻找到统一的预防方案,面试官很想看到具备这种总结能力的你。

另外,面试官每每仍是这么问:oop

你项目有遇到什么性能瓶颈吗?你是怎么解决的

针对你作的项目的性能指标也是一个不错的切入点,这时候能够说下你项目的部署状况。若是你排查过项目出现的性能问题,把具体过程列下来,能说出具体缘由,能精确到具体排查顺序最好。即便没有也能够说说你知道的如何预防的知识点,而后具体是怎么实践的。

给一个介绍本身项目的经典模板:

我作过一个xxx系统,他的功能是xxxx(简单总结下)。技术栈是xxxx(说明技术栈)。我曾经用xxx技术优化过,解决了xxxx问题。系统的qps大概是xxx,曾经排查过xx问题,后面设计xxx预防和报警方案保证线上稳定。

HR篇

例举一些我准备的以及被问到的问题

  1. 裸辞的缘由?

    对于这个问题我一直是这么回答的:我以为裸辞是对本身和公司负责,若是我没有从上家离职的话个人面试就无法好好的准备,甚至可能会影响到现有工做的进展,裸辞后可让我更好的对技术和自身进行复盘和总结,因此也是对本身负责。

  2. 做为项目的负责人,遇到多个需求方的不一样需求怎么去作评估作抉择?

    这个问题着重一个词:风险评估。风险评估能够从人力,开发周期,开发成本的角度给出一个综合的评价,最后说一个完整开发的流程,例如:需求评审->设计评审->代码评审->测试评审...

  3. 若是如今让你再去实现一个你作过的系统,你会怎么作?

    其实这个问题也是考察复盘能力,把一些总结过的经验再说一遍,注意突出一个扩展性(从新设计),提早输出一些问题的预防方案。

  4. 以前看到你有面试失败的经历,请问是什么缘由?

    这个问题是个大坑,当时我被问到也是心头一惊。后面冷静下来后我是这么回答的:我作的部分系统从贵公司的视角来看比较的基础和简单了,因此有些面试官认为我作的不够深。其实个人另一个系统(转移角度)是比较全面和有深度的,当时可能面试官没有问题我也没有提到,后面我反思了就把这个项目着重的去讲。

相关文章
相关标签/搜索