滴滴一二三面(礼橙优选,java开发)
滴滴的效率还是很高,一天三面就结束了,希望能有个HR面。
一面:(一个小时,主要问的基础知识)
-
自我介绍?项目的详细了解
-
应用集成,是怎么集成的?
-
mybatis的二级缓存是怎么实现的?二级缓存和一级缓存是存了哪些数据?
-
zookeeper集群的角色?角色的区别及切换过程?zab选举的具体过程?
-
zookeeper的工作原理?znode + wather?
-
如何保证订单接口的幂等性?
-
redis的数据结构?zset的实现原理(zipList/dic/跳表)?跳表是怎么做的?
-
redis的底层实现机制了解哪些?单线程多路复用如何实现的?
-
redis的持久化方式及其优缺点?
-
缓存穿透和缓存雪崩及解决办法?布隆过滤器的基本原理?
-
mysql存储用到的数据结构(B+树,hash)?讲一下B+树插入数据的过程?
-
mysql查询比较慢的原因排查?
-
什么情况下会导致没走索引?
-
组合索引的最左匹配原则的底层原理?】
-
类加载的具体过程?加载、验证、准备、解析、初始化
-
实现类动态加载的机制有哪些?
-
Java实现锁的方式有哪几种?synchronize的实现方式、底层原理、锁升级的过程?
-
lock和synchronize的区别?Lock是公平锁还是非公平锁?
-
如何创建线程池?ThreadPoolExcutor的七个参数?拒绝策略有哪些?
-
阻塞队列有哪些?ArrayListBlockingQueue和LinkedListBlockingQueue之间的区别?
-
介绍一下单例模式?双重检查锁的实现方式?
- 算法题:如何获取一个数组里面第k大的数?堆排序的过程,时间复杂度?【没有手撕】
二面:(50分钟,主要是挖项目)这个跟大家自己的简历有关系,我的这些问题只是针对我自己的项目问的。
-
问了自己的毕设,一个SaaS系统,问这个系统是如何设计?
-
RBAC权限控制的过程?资源、角色、权限的相互关系?角色组。
-
数据是如何隔离的?服务隔离怎么考虑的?
-
为什么使用微服务?微服务和单体的区别?dubbo和springcloud是怎么选择的?
-
服务的划分是怎么考虑的?
-
讲一下CAS单点登录的原理?
-
讲一下重定向的实现?跟重定向相关的状态码?301和302的区别?
-
讲一下HashMap的底层结构?put一个元素的过程?如何解决hash冲突?链表上是进行头插还是尾插?rehash的过程有插入怎么办?头插为啥会成环?
-
想想之前的项目,有没有什么可以改进的地方?
-
从性能角度的来看,可以做什么改进?【缓存、CDN、多线程……】
三面:(70分钟)主管面,问题都有点形而上的感觉,更加看面试者的思考过程,对技术本质的理解
-
介绍一下项目?
-
不是计算机专业的为啥学计算机?
-
讲讲对于微服务的理解?
-
讲讲对springboot的理解?
-
手撕算法题两个:八皇后问题,判断一个二叉树是不是平衡树。
-
讲一下对于dubbo的理解?
-
怎么看待微信小程序?微信为什么要推小程序?
-
你知道你所在的chengs有多少辆公共汽车?思考一下如何统计出来?
-
如何知道西安市一天有多少人做公交车?【主要是考查思路,也没有正确答案】
-
讲一下自己的最大优点?
-
讲一下自己的缺点?
-
因为自己不是计算机专业,提出要考考我计算机基础:
-
讲一下TCP/IP协议?
-
TCP协议本身百分之百可靠吗?设计的角度来看。
-
讲一下冯诺依曼计算机体系结构?
-
-
反问环节: