疫情期间,还在为面试发愁吗?一线互联网面试经验助你拿到offer


疫情期间,还在为面试发愁吗?一线互联网面试经验助你拿到offer

聚美&京东之成功面试分享!

聚美优品

结果:拿到Offer

岗位:高级Java工程师

笔试题目:

Java内存管理

HashMap HashTable ConcurrentHashMap LinkedHashMap的区别

异步模式的用途和意义

写字符串反转函数

final static volatile等修饰符的用法

社交网站中的“私信”功能,要求高并发、可扩展等等。 画一下架构图,和简单说明。

常用的设计模式,并重点说明观察者模式。

MVC模式,即常见的MVC框架

消息中间件的用途,和自己用过的一些消息中间件。

第一轮面试:

为什么离开上家公司

Mysql的索引类型

一般索引和联合索引内部机制上的区别

elasticsearch的倒排索引(得到一个信息,目前大数据企业基本上都开始采用ElasticSearch了)

redis的list结构相关的操作

redis cluster的应用和优劣势

给定一个不知道长度的(可能很大)输入字符串,设计一种方案,将重复的字符排重

常用的排序算法,快排,归并、冒泡。 快排的最优时间复杂度,最差复杂度。冒泡排序的优化方案。

二分查找的时间复杂度,优势。

一个已经构建好的TreeSet,怎么完成倒排序。

大概说一下多线程架构模式,并继续追问了reactor架构模式。各类模式的优缺点。

聊了下曾经参与设计的游戏服务器的架构。

应用服务器怎么监控性能,继续追问,对各种方式的对比。

redis使用有什么注意点没有,比如redis的1k问题、redis键的推荐命名方式等。

非常多个线程(可能是不同机器),相互之间需要等待协调,才能完成某种工作,问怎么设计这种协调方案。

java同步机制的wait和notify

第二轮面试:

为什么离开上家公司。

详细问了我在每家公司的情况。

介绍了做过的两个项目的架构图。

从0-1组建项目团队怎么组建。

技术选型怎么选。

如何满足需求。

自我感觉笔试题答的如何,Linux简单命令。

作为leader,在开发过程中,有木有什么规范。

介绍应聘的岗位主要是和大数据相关的,有了解么,觉得自己能胜任么。

问我在现在公司,和其他人比,是什么程度。相比其他同事,我有什么比较优势。

谈薪资要求,并给出了和HR谈的建议薪资。

是否介意加班。

第三轮面试:

聊各家公司的经历。

介绍薪资体系。

后记:本来说定的2天后给答复,后来,在周一HR主动给我打电话,说再等两天,再后来我主动打电话,又说还得等一周左右。

经验:高级职位的话,大公司比较少当天就给offer,慢慢等吧,不管你和面试官聊的多投机,都别以为“定了”。往好的方面想,可能是在走流程;往坏的方向想,可能正如网上所说,大的公司一般都会同一个职位面试多个人之后,再做决定。要有等待的心理预期。

最终,在大概10天后发了Offer。

京东成都研究院

结果:拿到Offer

岗位:高级Java工程师

第一轮面试:

Java线程池的实现原理

线程是否可以共享。线程池如何实现线程共享的。

JVM的内存结构。

Java锁机制的实现原理(主要是画Monitor示意图)。

Spring怎么配置事务(具体说出一些关键的xml 元素)。

MySQL的索引类型,以及B+树具体怎么存储的,每个节点都存的什么东西。

Redis的数据结构都有哪些。

开闭原则怎么应用。

ConcurrentHashMap的实现原理。

线程的状态图。

之前设计的项目架构图。

数据层分库分表的一些知识。

如果有人恶意创建非法链接,怎么解决。

多线程的内存视图(线程内存、主内存),以及内存可见性。

volatile关键字的理解。

本来要继续,因为时间中午了,说是下午一点半继续部门经理面试。 而且说,觉得我比较match,希望尽快安排面试,如果ok,就尽快到岗。

第二轮面试:

自我介绍。

编程中自己都怎么考虑一些设计原则的,具体讨论了开闭原则,以及在工作中的应用。

自己最骄傲的项目的详细设计,以及讨论。

缓存数据过期后的更新问题。

如何设计一个类,主要讨论了类粒度的问题。

第三轮面试:

主要是介绍部门情况,考察是否和团队匹配,比较在意一个人的职业素养、稳定性等方面。谈了薪资要求。同时说,HR面完之后,有时候可能要求增加一轮技术面试。

之前第一轮面试我的人过来说的,和我大概说了下原因:本来说的是接下来直接和HR谈,但是后来说的是由于成都研究院组织架构调整,HR太忙,说是会联系我。如果一周内没有联系我,让我电话联系之前发邮件的那位同事。

HR面试:

大概在10天以后,HR打给我电话,说是同时在考察几个候选人,所以中间时间比较晚。最终决定我更match ,定级T3-2研发工程师。

总结:

对于大公司而言,只要是技术岗的面试,还是比较重视编程基础,包括但不仅限于:现场白板编程、基本排序和查找算法、Java基础和并发包相关类,多线程模式、Socket等等。

工作年限是把双刃剑,经验越多,别人对你的要求越高,因此,如果你的工作年限和你的工作经验不成比例的话,很难获取到高级职位。

应聘高级开发职位时,相比较而言,会有更多的开放性问题,这些问题通常会围绕着简历上的项目展开,越是大公司,就单点的问题越深入,反而不会特别要求你知识的“广度”。因此,“知识广度是知识深度的副产品”这句话还是很有道理的。

平常做产品或项目的过程中,一定要总结,不限于技术总结,也包含解决问题的思维方式、教训、方案优劣性的总结

以上面试分享 ,来源网络。


分享到:


相關文章: