adorabled4
后端开发
·2024-01-28
#求职# #面试# #Java# 慧策-一面-55min 面试官很友好, 不会的问题都做了解答, 最后给我讲 做技术存在的问题. 1. 介绍 DB 项目 ,连着一共讲了十分钟 => 东西很多 , 讲的时候自由扩展 , 架构介绍, server主要部分介绍, 实现了哪些内容 。实现的方法结合InnoDB来进行对比 2. 怎么实现的事务 => MVCC, 距离可重复读, 快照机制 , 引申事务涉及到的要点 => 事务调度 , 死锁检测 3. Entry的存储 / 内存释放问题 => 这里讲的时候讲错了导致面试官以为Entry是独立的内存空间 , 只记得page的缓存实现是一个引用计数器的逻辑 => 后面去看代码发现 Entry 是VM通过DM查询Page得到的 , 通过Page去实时的load Entry , 并且VM本身就实现了一个引用计数器的缓存, 因此page 和Entry 是同样的缓存逻辑 4. 使用的缓存淘汰的策略 => 前面提到的引用计数法 , 这里讲了LRU , 结合InnoDB , 以及朴素的LRU存在的问题。 5. 简历项目是怎么做的(实习/实际项目/学习项目) => 如实回答。。。要是有实习就好了 6. 从项目中学到了什么 => 这里讲了 团队协作 遇到的问题 , 讲代码规范 , 以及一些模块的设计 。结合实际遇到的问题,只要项目认真做了,基本上如实讲就好。 7. 项目中用的是MVC的架构, 还知道别的吗 => 这里讲了 WebFlux 以及遇到的 非阻塞上下文 代码的问题 8. 知道DDD吗 => 结合 服务划分 讲解, 举例分包 9. 项目分层的理解 => 讲了项目中的分层以及好处 10. 审核服务可用性如何保证 => 审核还在开发, 讲了回调系统, 思想和设计是类似的 , 顺便讲 Redis ZSET 缓存, 定时任务 , 失败重试 11. 是否有考虑更优的方案吗 => 讲了MQ的好处 , RabbitMQ ACK / 死信队列 , 这里如果熟悉MQ的话, 完全可以多讲一会 12. 如果和团队leader的方案发生冲突怎么办 => 实际遇到过, 结合项目的一个要点去讲相关的内容 , 结论是 看谁的方案更好 13. 假定你的方案更好, 但是leader就是不用, 你会怎么办 ? leader看的更远 , 比我强 , 听leader的 14. 假如你是leader , 组员与你的方案有冲突, 怎么解决(上面的反过来) ? 给组员解释方案的原因 面试官 : 责任制 , 组员实际服从就可以了, leader不需要解释。 (感觉是我学生思维了) 15. 订单表 , 查询最近几天的用户的订单 , 写SQL ,设计索引 ,为什么 最开始写的是 : SELECT A,B,C FROM t_order WHERE user_id = \${userId} AND NOW() - create_time < TTL 上面的SQL怎么优化 ? 上面的SQL的索引会失效 , 正确的做法是 提前继续开始和结束的时间, 然后查询 SELECT A,B,C FROM t_order WHERE user_id = \${userId} AND create_time between \${start_time} and ${end_time} 联合索引的顺序? user_id , create_time 16. return finally 的问题 => 刚好研究过, 参考 : https://blog.dhx.icu/2023/10/javase/从Java字节码分析return与finally的执行流程/ 16. 反问 : ① 公司主要的业务 ② 点评今天的表现 , 面试官: 在校生对于一个点能有思考, 吃透就没问题, 项目不无所谓,能否把一个东西表达出来,说清楚更重要。 17. 补充问 : ① 手上有of吗 :无 ② 理想的实习岗位是什么
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP