2020年6月Java面试实录

   受疫情影响,很多IT公司降薪、裁员,招聘的压力也随之加大。以下,记录一位逆流而上,在上周跳槽成功同学的面试经历,希望对大家有用。(已征求本人同意)。

    为避免一些不必要的麻烦,本文对面试官的提问进行了简化和整理。

 

    应聘者:二本学位;2年开发经验;男;

    应聘企业:某国内软件百强企业

 

     以下,是本次面试期间,技术官的提问,以及我对其中要点的解析。

 

1.介绍一下你的情况,重点说说简历上没写的内容。

解析:积极、正能量。

 

2.简历上写的,你做过“Xxx业务监管系统”,这是个什么项目,描述一下业务。

解析:三个方面:

    (1)“包装简历(zao jia)”的人屡见不鲜,面试官试图通过你的回答,看看你是否真的做过这个项目,或者这个项目仅仅是B站或者某个教学平台的项目案例。

    (2)想从你的描述中,找一个突破口,继续后面的提问。(例如,如果你写的是“电商系统”,后面就可能再问你“高并发...”;如果你写的是“金融系统...”,后面就可能再问你“实时性...”)

   (3)好奇心。想听听你做过的项目,到底是个什么东东。
 

3.再说说这个项目的架构,还有你主要做什么模块?

解析:看看你之前的工作,是一个 只专攻某一个模块的“码农”,还是较为“全栈”的深入接触了整个系统。

 

4.你刚说系统里用到了Eureka,它是干什么的?

解析:普通的技术提问。

 

5.你觉得Eureka的发展前景如何?

解析:这可能是一个“陷阱”,或者是在考察你 对技术的发展,是否有所了解。

    Eureka官方近期已经停止了对开源版本的维护,但国内已经在大面积流行使用。就是说,你用Eureka是正常的,但你最好得知道Eureka已经存在了隐患。

 

6.系统里的MQ用的哪一款?为什么用这个款,不用其他同类的中间件?

解析:考察你平时的工作,是习惯于搬砖,还是喜欢研究。

RabbitMQ、RocketMQ、Kafka等多个中间件都是MQ。如果你是习惯于搬砖,一定只知道“实现功能”就行了(也就是“干就对了”),不会去管别深层的原因。反之,如果你平时热衷于学习、思考,就一定会去思考 当前系统为什么要选择这个MQ,而不用其他。要懂得相似技术的不同之处。

 

7.简历里写,你参与这个项目14个月了,遇到过哪些印象深刻的问题,如何解决的?

解析:看看你平时的工作是“不懂就问”、在别人的帮助下才能工作;还是能够独立解决问题、独当一面。

 

8.缓存用的Redis吗?了解过其他缓存组件吗?使用缓存需要注意哪些问题?

解析:

考察你对常见技术的深入研究程度(或者态度)。

其他缓存组件:SSDB、或者干脆用HashMap

缓存需要注意的问题:缓存穿透、缓存击穿、缓存雪崩、一致性哈希、二级缓存……

 

9.如果不用缓存,这个项目的数据库能抗住并发请求吗?有没有思考过,或者测试过?

解析:

考察一些实用的“冷知识”。

tomcat、MySQL的并发量都只有几百。

 

10.问点基础的,Collection和Map是什么关系?

解析:考察细节,同样也是你秀技能的时刻。如果你对于基础知识的掌握非常扎实、并且有自己独到的理解。那么就出彩了,例如:

(1)从继承结构来看,二者没有关系。

(2)从底层源码来看,二者关系密切。比如HashSet的底层用到了HashMap,TreeSet的底层用到了TreeMap。

(3)技术面试,不是高考,不用100%完全去回答提出的问题。很多时候,是可以“答非所问”的,可以趁机发挥你对相关技术的理解。例如,此时就可以回答HashMap和ConcurrentHashMap的底层结构,或者说一下HashMap在JDK不同版本中的演变,甚至说一说你对HashMap等底层源码的理解都可以。总之,“秀”就对了。

 

11.JDK8以后的新特性熟悉吗?说一些你知道的,lambda就不要说了。

解析:lambda不是不重要,是非常重要,以至于面试官已默认你必须会。

其他新特性,没有lambda那么重要,但又不是不重要。所以,你得会一些,但到底会哪些,看你心情了,无所谓。

 

12.如果SQL性能太慢了,你是怎么优化调试的?

解析:态度+能力,我认为考“态度”更多一些。因为“SQL性能太慢”应该是编写任何一条SQL时,都要思考的问题,就看你是否真的去尝试思考这个问题了。

 

一般的解决方案:先通过慢查询日志,定位出速度较慢的SQL语句;然后再通过索引诊断,判断哪些索引是否失效、是否可以重构索引等。

 

13.如果你加入我们,会不会对你以前的开发团队 造成影响?

解析:考虑集体荣誉感。

如果你为了涨工资来我们公司,而不顾原来团队的死活。我敢让你来吗?

 

注:面试时,宁肯 回答的不是100%正确,也不要千篇一律的背面试宝典里的话。如果你的回答,有少量错误,但是体现了你的思维逻辑,那么不但不减分,还很可能加分。但如果你的回答,和前面N个人是一模一样的,那么抱歉,我们不需要一个背题的人来搞软件开发,回去等通知吧。

 

还有,不知道你发现面试的规律了吗?一般都是,“顺势聊天”+基础考点。其中,“顺势聊天”是指,通过某一个点,逐步展开、衍生出各种其他问题。例如,本次就是通过“简历上写的,你做过Xxx业务监管系统” 这一个问题开始,逐步问了该项目的业务、架构、项目里的Eureka、技术发展前景、MQ、解决问题能力等。

 

- 完 -

推荐阅读

Java小白到大神的心路历程(框架)

答疑 | 高并发都要学哪些技术?

答疑 | 我是JAVA初级,有必要学架构设计吗?

答疑 | 面试全对,却没offer?

答疑 | 背下这300字,面试就能加薪!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Web项目开发全程实录PDF是指通过记录Java Web项目的开发过程,并将其整理成PDF格式的文档。这种文档的目的是为了让项目开发者和其他相关人员能够清晰地了解项目的开发流程和细节。 Java Web项目开发通常包含以下几个主要阶段:需求分析、设计、编码、测试和部署。实录PDF可以按照这个顺序详细记录每个阶段的具体步骤和相关文档。 在需求分析阶段,实录PDF可以包括对项目需求的详细描述、需求收集的方式和结果、需求分析的过程和结论等。这会帮助开发者更好地理解项目的目标和要求。 在设计阶段,实录PDF可以记录设计文档的编写过程、设计模式的选择、用户界面设计的思路和效果图等。这有助于开发者了解项目的整体架构和技术选择。 在编码阶段,实录PDF可以记录每个模块的编码过程、使用的开发工具和框架、代码的优化和重构过程等。这有助于开发者理解项目的具体实现。 在测试阶段,实录PDF可以记录测试计划的编写过程、测试用例的设计和执行、测试结果的收集和分析等。这有助于开发者发现和修复项目中的问题。 在部署阶段,实录PDF可以记录部署方案的制定、服务器环境的配置、代码的打包和发布过程等。这有助于开发者将项目成功上线。 总之,Java Web项目开发全程实录PDF是一份详尽记录项目开发过程的文档,可以帮助开发者和相关人员更好地了解项目的开发流程和细节。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值