聚美&京东之成功面试分享!
聚美优品
结果:拿到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等等。
工作年限是把双刃剑,经验越多,别人对你的要求越高,因此,如果你的工作年限和你的工作经验不成比例的话,很难获取到高级职位。
应聘高级开发职位时,相比较而言,会有更多的开放性问题,这些问题通常会围绕着简历上的项目展开,越是大公司,就单点的问题越深入,反而不会特别要求你知识的“广度”。因此,“知识广度是知识深度的副产品”这句话还是很有道理的。
平常做产品或项目的过程中,一定要总结,不限于技术总结,也包含解决问题的思维方式、教训、方案优劣性的总结
以上面试分享 ,来源网络。
閱讀更多 碼農的一天 的文章