记录一次滴滴出行后端面试
文章目录
一面
1.排序算法了解哪些,快排,快排复杂度,优化,堆排序,建堆过程
2.反射了解么,原理是什么
3.treemap和linkdedhashmap区别,实现原理
4.jvm类加载的过程讲讲,符号引用是什么,哪些情况会发生初始化
5.spring的循环依赖,怎么解决的,为什么需要加个三级缓存,二级不行么
6.springboot有什么特点,相比与spring,了解springboot的自动装配的一个原理么
7.kafka支持事务么,你们项目中有使用么,它的原理是什么
8.怎么统计一亿用户的日活,hyperloglog有什么缺点,bitmap不行么
算法:求一个环形链表的环的长度
二面
1.redis的几种数据类型,你用过哪些,zset有用来做什么
2.垃圾收集器,cms垃圾收集过程,为什么停顿时间短,有什么缺点,concurrent mode failure怎么办,内存碎片怎么解决,为什么不用标记整理法
3.线程池原理,核心参数,线程数设置,参数动态调整后变化过程,Tomcat线程池原理,常用的线程池,你们一般使用哪种,为什么,会有什么问题,线程抛异常怎么办,阻塞队列原理
4.做过分库分表么,为什么要分库分表,会有什么问题,多少数据适合分库分表,跨库,聚合操作怎么做
5.nio讲讲,实现原理,优缺点
6.了解netty么,讲讲netty的设计模型,架构,使用场景
7.zookeeper读写数据过程
8.什么对象会进入老年代,eden和survivor比例可以调整么,参数是什么,调整后会有什么问题
9.微信朋友圈设计,点赞,评论功能实现,拉黑呢,redis数据没了怎么办
项目介绍
算法:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先
你对自己有什么规划,想学习什么技术,最近在看什么书
三面
1.tcp和udp的区别,tcp怎么保证可靠连接的,出现网络拥塞怎么解决
2.tcp和udp的报文结构了解么
3.给了一个业务场景写sql语句
4.你们建表会定义自增id么,为什么,自增id用完了怎么办
5.一般你们怎么建mysql索引,基于什么原则,遇到过索引失效的情况么,怎么优化的
6.jvm内存结构,堆结构,栈结构,a+b操作数栈过程,方法返回地址什么时候回收,程序计数器什么时候为空
7.redis实现分布式锁,还有其他方式么,zookeeper怎么实现,各有什么有缺点,你们为什么用redis实现
8.spring你比较了解哪方面,讲讲,生命周期,bean创建过程
9.使用过事务么,遇到过事务失效的情况么,原因是什么
10.springboot是怎么加载类的,通过什么方式
11.es倒排索引,原理,lucene,分词,分片,副本
12.es写数据原理,数据实时么,为什么不实时,会丢数据么,segment,cache,buffer,translog关系
13.es深度分页,优化
项目介绍
算法:给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。
四面
1.http请求头,expire,cache-control字段,状态码,301,302,401,403
2.https原理,数字签名,数字证书,非对称加密算法过程,有什么问题
3.tcp连接client和server有哪些状态,time_wait状态
4.虚拟内存,虚拟地址和物理地址怎么转换,内存分段,内存分页,优缺点
5.linux最多可以建立多少个tcp连接,client端,server端,超过了怎么办
6.eureka原理,强一致性么,为什么,怎么保证强一致性,多级缓存怎么保证一致性,eureka集群,宕机了服务还能调用么
7.hystrix原理,半开状态知道么,具体的一个转换过程,它的隔离是怎么实现的
8.zookeeper一致性保证,zab协议原理,半数原则如果查询到另外一半呢,那zookeeper属于哪种一致性,强一致性么,还是最终一致性
9.zookeeper选举机制,选举过程有什么问题
10.自旋锁,线程上下文切换的开销具体是什么,中断,有哪些中断,用户态和内核态切换过程
11.redis管道用过么,用来做什么,它的原理是,保证原子性么,和事务的区别,redis事务保证原子性么
12.redis强一致性么,怎么保证强一致性,有什么方案
13.kafka怎么保证消息不丢失的