百度面试
1.自我介绍
2.实习相关:
- 你做的是AI方向,为啥不继续做AI算法呢,要选择java开发呢?
- 做的主要内容是什么?
- 多智能体系统是怎么样的?
- 你对智能体的理解是什么?
- 这个2000w数据筛选的过程是怎么样的
- 那么数据中如果高手玩家决策是错的,也会给模型学习到了
- 你的主要工作是什么?
- 你们这个大模型的处理是怎么样的? 同学的
- 赢大师APP开发做了什么东西,这个问答体系是怎么样的。提供解释
3.项目
- 介绍一下你这个短链接项目吧
- 布隆过滤器的底层原理是什么
- 项目中布隆过滤器有什么用
- 双重判定锁是怎么做的,有什么作用
- 数据库和缓存一致性怎么做的
https://www.yuque.com/nibiwanxiamei/yrd6t1/d098e4f76821d27d3563495fb12beed5
- 更新数据库的操作是在事务提交前还是提交之后做的呢
- 删除redis这个操作是怎么做的呢,直接delete吗
- 数据库的数据是怎么去同步的呢?
- 除了这个,还有什么数据同步的方案吗
- 数据库主从节点之间数据的同步是异步的,那就会出现数据不一致的情况,你项目是怎么处理的呢?(我说 这些方法可以保证最终一致性,而且出现短暂不一致的情况少,项目是允许出现短暂的不一致的);
- 数据库InnoDB 索引为什么用B +树
- 数据库中B+树删除操作会发生什么?
https://mp.weixin.qq.com/s?__biz=MzU0OTE4MzYzMw==&mid=2247513308&idx=3&sn=370c37ee0083646c6757e29ebd2e6cbb&chksm=fbb13d22ccc6b434eb191fd4a8a6c5e3989d62fa87fd506b555ae233e3ca9f0cfaf1b09fb097&scene=27
- 路由表有什么作用,为啥要做路由表,为什么不直接存放在一张表中
- 你的数据库分片是怎么做的,用了ShardingShpere的什么模式
- JDBC这个是在那个层面做的,prepare ? statement?
- ShardingShpere分片是怎么分片的?对这个底层有了解过吗?
- sentinel限流操作是对整个系统限流还是针对某些接口限流。
- 常见的限流算法了解过吗?
- 你用到了springcloud,为什么呢?分布式服务和单体服务的区别或者说优劣是什么
- nacos服务注册和发现是怎么做的呢,底层原理你了解过吗?
- nacos如果挂掉了,你的服务怎么办呢?
- 自增主键,UUID,雪花算法,你觉得使用哪个更加合理,或者说适合什么场景?
https://www.yuque.com/nibiwanxiamei/yrd6t1/4578c0cc72422b3d5b7f50fbc8e73c2f
- 项目中有没有碰到CPU飙升或者OOM的现象呢,是怎么定位的呢?(jprofile)
4.八股
- Cookie和Session的区别
- 数据库中索引的构建过程,查询的过程?
- 数据库的修改是在事务提交之前还是事务提交之后(两阶段提交)
- 动态代理的原理是什么?
- Spring事务失效场景(同一个类,一个类有事务,一个没有事务,两个方法调用后事务失效怎么处理)
- 我表删除了10w条数据,但是表的磁盘占用没什么变化是为什么?
- HashMap底层原理?扩容的过程(除了超过负载因子还有什么情况会导致map扩容吗)?
- 多线程下扩容会有什么问题吗?举个例子说说看
- 你们用JDK8还是17(用8了解17),17的hashmap扩容有什么一样的地方吗
- currenthashmap底层原理,加锁的过程,是怎么加的
- segment是基于reentrantlock的,说说这个吧
- AQS是什么,是怎么操作的?
- CAS操作是什么?
- CAS是自旋操作,会一直自旋吗?
- 我看你简历没咋写Linux,那你对Linux的东西掌握的怎么样,怎么查看CPU内存的占用情况呢?(用top,df看磁盘,nvidia-smi看显卡,其余就是一些基本文件操作)
- 你对容器的看法是怎么样的,平时用到过吗?(用到docker放置中间件),你觉得容器的好处和坏处是什么。
5.算法:反转链表部分区域(给left和right反转这个区间)
6.反问
多久出结果:本周
对我有什么建议吗?:面试官第一次面试,说觉得我不错,他认为现在面试不需要造火箭一样,只需要技术和知识够用就行。
总结:面试官人很好,我理解错的地方纠正,题解不充足的地方会提示,误解他的意思会说是他描述错了重新描述。
总结:shardingshpere需要关注 底层原理,nacos也需要查看底层原理,hashmap源码需要再看看,并看看JDK17的特性和变化。