一面(电话面+后期在线coding)
①你们为什么要使用mongdoDb?你们的这个系统中涉及到哪些表?
②hytrix 的实现原理是什么?隔离策略有哪些?你们使用的是哪一些?你们项目中哪些地方使用到了,使用场景是什么?为什么要使用?
③spirng 源码。
④rocketMq 的设计理念,数据存储,设计思想等。
⑤ConcurrentHashMap的底层实现原理
⑥你线上问题解决经验是什么?遇到了什么问题?应该怎么去解决?
⑦在线编码: 两个有序链表,合并成一个链表,然后进行算法的时间复杂度,空间复杂度分析。
二面(电话面+后期在线coding)
①tcp协议和uDP 协议的区别是什么?
②3次握手和4次挥手的过程是什么样的?
③怎么保证接口的幂等性?
④mysql的存储引擎的数据结构是什么?相比其余的数据结构,有什么优缺点?
⑤说一下你对SpringCloud,SpringBoot,Spring的理解
⑥java 在编译和运行过程中分别作了什么?
⑦在线编码: 给定一个字符串,单词之间以空格分隔,要求里面的单词倒装过来。
三面(电话面,技术交叉面)
①介绍一下springCloud 的组件,各组件的作用,你们是怎么用,你的理解是什么?
②springCloudbus 关联的消息中间有几种?支持哪几种?你觉的什么场景下,会用到springCLoudBus?
③springCloud里面的限流,限流是怎么内部实现的?怎么去挡住多余的请求,怎么实现限流的(线程池的工作原理)?
④什么时候该用mongoDB,什么时候使用mysql?该如何选择?
⑤你做过的项目数据量有多大呢?如果现在数据量特别大,或者一张表一种放不下了,应该怎么处理?分布分表应该怎么做?具体的某一张表怎么拆?(涉及到主键生成,各种主键生成策略对比,数据分片,以及关联数据的存储,主从复制)
⑥java 官方提供的创建的线程池的方式有几种?分别是什么?
⑦你们使用的java 版本是什么?java最新的版本是多少?你们为什么还在使用java8呢?
⑧你们的垃圾回收器是什么的? 为什么是使用CMS而不是G1? 你能介绍一下像CMS垃圾回收器,从对象创建,内存分配到垃圾回收整个过程吗?
⑨介绍一下策略模式,应该怎么用? 它能解决什么问题?从编码领域系统设计方,介绍一下我们怎么去实现一个策略模式?
0~1年(搬砖):
1~3年(技工):
3~5年(包工头):
5年以上(设计师):
10年以上(送外卖送快递):
进入饿了么,开始送外卖(开个玩笑)
无论是哪家公司,都很重视基础,大厂更加重视技术的深度和广度,面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。
针对以上面试技术点,我在这里也做一些资料分享,希望能更好的帮助到大家。
开源分享:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】