百度提前批二面
二面
实习
1.说一下实习业务背景
2.负责的业务都是在线的接口吗?
3.业务中存储的数据量级有多大?a.百万?
4.针对这么大的数据量级,有什么查询优化的手段?
5.根据业务的输入字段来查,如果业务中需要新增字段,那是如何设计来减轻业务中的工作量?a.核心字段(例如uuid,cityld)不进行增减,新增业务字段都保存在extDate中,ison格式保存。
6.新增的字段可以用来做筛选吗?根据value进行查询或者过滤?a.解析json,拿到对应的kv,把kv写入检索引擎的条件中即可(例如es的item查询)
7.怎么保证数据供给方实时数据更新?a.根据供给方发的消息,编写定时作业脚本对消息进行消费,同步到检索引擎中
8.关于通用性组件的开发,介绍一下场景?大概介绍一下组件的实现逻辑+
9.架构治理过程中,印象比较深刻的是什么?
项目
1.为啥要用DDD模型进行设计?a.讲了讲DDD和MVC的大致区别,也不知道为啥选DDD(因为项目是DDD的。。。)
2.项目中用redis做分布式锁的实现逻辑因为想了解一下更关注业务逻辑的模型
八股
1.介绍hashmap数据结构,如何解决哈希冲突和如何进行扩容的?4/5a.说了1.7和1.8的区别。b.扩容这讲得有点勉强(有点忘了)2. hashmap和concurrentHaahmap的区别3. synchronized和volatile的区别4.synchronized做过哪些优化?a.偏向锁,忘完了5.业务中发现CPU使用率较高,会如何排查,说一下排查思路。6.使用线程池有哪些好处?7.线程池是如何工作的,描述一下工作过程8.Spring是如何实现声明式事务的功能?适用场景下,事务注解的生效条件?a.不会。。9.InnoDb的隔离级别有哪些?分别介绍一下10.MVCC展开讲一讲11.说一下Sgl注入的原因和如何解决的+12.有一张表,数据量很大,查询时会进行分页,越往后查越慢,这是为什么?有什么优化方案a.不会。。。13.redis常见数据类型有哪些,结合业务说说常用的有哪些?展开讲讲分布式锁是如何做的a.说了用string、setnx指令做分布式锁算法题1.[123,92,9254,124)这样的正整数数组,拼接成最大的数。-92,9254,124,123当时思路:1.从大到小排后,将每个数拆成字符数组;2.使用冒泡排序逐次比较,按比较规则重新排序;3.比较规则:按位比较a.相邻两个字符数组进行比较,从头比到尾选出大的放到前面b.如果短的那个比较完了还没区分出来,再将index+1的符号和长数组的前面挨个比较。比较9254、92这种情况。
#软件开发笔面经#