秋招字节data后端开发一二三面面经
一面90分钟
自我介绍
项目甲骨文
java内存结构,哪些结构是同步的?(有点懵逼)
java锁有哪些?各自的机制,以及彼此之间的区别和优缺点?
公平锁和非公平锁?ReentroLock是公平锁吗?底层实现的区别?
volitile是什么?特点,为什么不能保证原子性?
共享内存和本地副本相当于计算机结构的什么?
Spring框架用到的设计模式?手写一个模板方法
关系型数据库和非关系型数据库区别?
数据库索引有哪些?
聚簇索引和非聚簇索引区别和例子?
select * 和 select 字段的区别?哪个好?为什么?
select * 和 select 字段数据库在运行时有什么不同?
数据库是先写缓存还是磁盘?断电了会怎么样?
数据库一致性怎么保证?怎么回滚事务?
线程池运行机制?优点和缺点是什么?为什么?
线程池七大参数?初始化时核心线程数大小怎么指定?为什么?
线程池出来事务和自己new一个线程处理的区别?各自的适用的场景?
CPU密集型和IO密集型?举个例子说一下各自的例子?
IO多路复用了解多少?模型?有多少组件?哪些地方出现过?
IO多路复用和线程池有什么优缺点?各自适用哪些场景,不适应哪些场景?
消息中间件的垃和推模型?以及各自的优缺点,适用场景?RocketMQ是什么模型?和推拉模型有什么不同?
算法
- 类似笛卡尔积的算法?时间复杂度?解题思路?```
/** * * 数据格式转换,转换前后如下: * * { [ * A:[1,2,3]} {A:1,B:1,C:1} , {A:1,B:1,C:2} , {A:1,B:1,C:3} ...(省略6项) * B:[1,2,3]} => {A:2,B:1,C:1} , {A:2,B:1,C:2} , {A:2,B:1,C:3} ...(省略6项) * C:[1,2,3]} {A:3,B:1,C:1} , {A:3,B:1,C:2} , {A:3,B:1,C:3} ...(省略6项) * } ] * */ public static List> cartesianCombine(Map> filterMap) { }
- 类似笛卡尔积的算法?时间复杂度?解题思路?```
闲聊
平时在学校怎么安排学习和项目的?
在学校有没有看书习惯
有没有投其他公司
你对将来就业的打算
反问
二面70分钟
自我介绍
实习经历(30分钟。项目难点、项目中使用的技术以及业务思考)
jwt是什么?原理?和cookie之间的关系(区别)
AOP用来解决什么问题(业务场景)
AOP底层实现
AOP打日志和业务里面写日志有什么区别
浏览器输入地址再回车会发生什么事情
DNS记录格式
https证书是怎么起作用的?我自己生成的证书可靠吗?为什么?
http2.0特点?需要建立在https上吗?
算法:
三面52分钟
项目甲骨文
java怎么实现单例模式(饿汉式、懒汉式、加锁懒汉式、DCL懒汉式、内部类、枚举、工厂模式)
java线程同步的方式
innodb底层
主键索引和非主键索引的区别
覆盖索引查询
索引的设计思路,怎么设计索引
性别能不能作为索引,为什么?
堆了解多少
算法:建堆和堆排