京东成都研究院
结果:拿到Offer
岗位:高级Java工程师
内容来源于作者收集整理,希望对大家有一丁丁帮助!(如果有帮助的话,您还可以点赞,评论,转发,谢谢!)
第一轮面试:
- Java线程池的实现原理
- 线程是否可以共享。线程池如何实现线程共享的。
- JVM的内存结构。
- Java锁机制的实现原理(主要是画Monitor示意图)。
- Spring怎么配置事务(具体说出一些关键的xml 元素)。
- MySQL的索引类型,以及B+树具体怎么存储的,每个节点都存的什么东西。
- Redis的数据结构都有哪些。
- 开闭原则怎么应用。
- ConcurrentHashMap的实现原理。
- 线程的状态图。
- 之前设计的项目架构图。
- 数据层分库分表的一些知识。
- 如果有人恶意创建非法连接,怎么解决。
- 多线程的内存视图(线程内存、主内存),以及内存可见性。
- volatile关键字的理解。
本来要继续,因为时间中午了,说是下午一点半继续部门经理面试。 而且说,觉得我比较match,希望尽快安排面试,如果ok,就尽快到岗。
第二轮面试:
- 自我介绍。
- 编程中自己都怎么考虑一些设计原则的,具体讨论了开闭原则,以及在工作中的应用。
- 自己最骄傲的项目的详细设计,以及讨论。
- 缓存数据过期后的更新问题。
- 如何设计一个类,主要讨论了类粒度的问题。
第三轮面试:
主要是介绍部门情况,考察是否和团队匹配,比较在意一个人的职业素养、稳定性等方面。谈了薪资要求。同时说,HR面完之后,有时候可能要求增加一轮技术面试。
之前第一轮面试我的人过来说的,和我大概说了下原因:本来说的是接下来直接和HR谈,但是后来说的是由于成都研究院组织架构调整,HR太忙,说是会联系我。如果一周内没有联系我,让我电话联系之前发邮件的那位同事。
大概在10天以后,HR打给我电话,说是同时在考察几个候选人,所以中间时间比较晚。最终决定我更match ,定级T3-2研发工程师。
总结:
对于大公司而言,只要是技术岗的面试,还是比较重视编程基础,包括但不仅限于:现场白板编程、基本排序和查找算法、Java基础和并发包相关类,多线程模式、Socket等等。
工作年限是把双刃剑,经验越多,别人对你的要求越高,因此,如果你的工作年限和你的工作经验不成比例的话,很难获取到高级职位。
应聘高级开发职位时,相比较而言,会有更多的开放性问题,这些问题通常会围绕着简历上的项目展开,越是大公司,就单点的问题越深入,反而不会特别要求你知识的“广度”。因此,“知识广度是知识深度的副产品”这句话还是很有道理的。
平常做产品或项目的过程中,一定要总结,不限于技术总结,也包含解决问题的思维方式、教训、方案优劣性的总结