校招面经-京东Java后端二面

1、Java面向对象具有封装、继承、多态三大核心特性。封装通过访问修饰符隐藏对象内部细节,仅暴露必要接口;继承允许子类复用父类属性和方法,实现代码复用和层次化扩展;多态分为编译时重载和运行时重写,使程序能够通过统一接口处理不同对象,提升灵活性和可扩展性。
2、重载发生在同一类中,方法名相同但参数列表不同,与返回值和访问修饰符无关,编译时绑定;重写是子类覆盖父类方法,方法名、参数列表和返回类型必须相同,访问权限不能更严格,不能抛出新的检查异常,运行时动态绑定。
3、线程池核心参数包括:核心线程数、最大线程数、空闲存活时间、时间单位、阻塞队列、线程工厂、拒绝策略。ThreadLocal底层使用ThreadLocalMap存储数据,其Key是弱引用的ThreadLocal对象,Value是强引用的实际存储值,每个线程独立拥有此Map实现数据隔离,需注意内存泄漏问题。
4、使用线程池实现1~100累加时,首先创建固定大小的线程池,然后将累加任务拆分为多个子任务,通过线程池提交实现了Callable接口的每个子任务,收集返回的Future对象后,遍历这些Future并累加其阻塞获取的中间结果,最终关闭线程池并输出总和。整个过程利用线程池并行处理子任务,通过分治策略提升计算效率,同时确保资源合理回收。
5、B+树非叶子节点仅存储键,叶子节点包含全部数据且形成有序链表。相比B树:1. 查询更稳定:所有数据都在叶子节点,查询路径长度一致;2. 范围查询高效:叶子节点链表直接遍历,无需回溯;3. 磁盘I/O更低:节点存储更多键,树更矮胖;4. 全表扫描更快:叶子节点链表顺序遍历即可。
6、失效场景:1. 违反最左前缀原则;2. 对索引列使用函数或表达式;3. 类型隐式转换;4. 模糊查询以通配符开头;5. OR条件包含非索引列。优化方法:1. 按高频查询顺序建联合索引;2. 避免索引列运算;3. 用覆盖索引减少回表;4. 数据量大时用分区表;5. 定期分析索引使用率并删除冗余索引。
7、通过EXPLAIN命令查看SQL执行计划,关注key字段显示使用的索引名,type字段为ref/range表示有效索引扫描;若为ALL则是全表扫描。额外检查Extra字段:Using index、Using filesort
全部评论

相关推荐

问的很细,判定为寄Q:详细介绍项目Q:用 Redis 做去重的话,比如说 5 分钟之内不能重复发,是怎么做的?Q:具体描述用滑动窗口去重Q:项目中遇见的挑战?怎么解决的?Q:用消费者组做隔离,同一个消息发到一个 topic 上,消费者组会都会收到这个消息吗?Q:不同的业务消息我都往这个 topic 上去发,所有的消费者都能收到这个消息吗?Q:为什么选择这种方案?有什么考虑?这种模式会有什么问题?Q:详细介绍另外一个项目Q:用 RAG 去做检索,知识库是怎么搭建起来的?Q:文档清洗是怎么做的?是人工做的还是什么?Q:向量是多少维的?Q:文档分片之后,向量库里边的文档有多少?Q:向量库里存了哪些数据字段?Q:怎么做的向量检索?怎么把相似的这条数据搜出来的?Q:索引格式是什么Q:你的 RAG 是一个什么?是一个接口吗?Q:接口怎么跟 Agent 打通?你的 RAG 接口是怎么跟 Agent 结合?Q:项目当中怎么用的多线程Q:数据库的索引用过吗?SQL:有一张表,里面有姓名和分数两列,查一下分数最高的学生的姓名,不用考虑索引。SQL:这个表里面又增加了一个列叫科目,查一下每一科成绩最高的学生的姓名。Q:你的 Redis 里边都存了什么数据?怎么用的?Q:你用过 AI 编程吗?有什么经验总结?Q:就业期望是算法方向还是做应用方向?
查看24道真题和解析
点赞 评论 收藏
分享
46min,重项目轻八股无算法,0点评。无自我介绍,直接开问。Q1: 毕业届次、课程安排、实习时长及到岗时间?Q2: 简历项目是借鉴的开源项目还是自己做的?Q3: 详细介绍AI视频解析平台项目功能。Q4: 视频上传提音到送大模型的完整链路?Q5: 视频转音频功能如何实现?Q6: 音频给大模型是切片还是整段一次性传输?Q7: 选用哪个大模型及选型原因?Q8: 与大模型交互还有哪些扩展功能?Q9: 大模型交互是否使用RAG还是仅用提示词?Q10: 如何发现并解决大模型幻觉问题?Q11: 项目中具体如何设计提示词减少幻觉?Q12: 总结功能是按单节还是全章节处理?Q13: 加入对话能力和追问功能的逻辑是什么?Q14: 项目中分布式锁解决什么具体场景问题?Q15: 分布式锁的Key基于什么设计?Q16: 视频MD5值在前端还是服务端计算?Q17: Redisson分布式锁底层原理?Q18: 为何在setnx基础上加Lua脚本实现分布式锁?Q19: 分片续传的具体实现逻辑?Q20: 分片上传是串行还是并行?配置了几个线程?Q21: 限流加在哪个环节?使用什么技术实现?Q22: 高并发访问Redis执行限流如何保证数据一致性?Q23: 核心业务流程涉及几张表及具体交互?Q24: 视频长文本的数据表字段类型及设计?Q25: 事务的作用及哪些SQL场景需要加事务?Q26: MySQL常用的索引类型有哪些?Q27: 什么是聚集索引?主键索引属于哪种索引?Q28: JUC并发包用过哪些多线程相关的类?Q29: ReentrantLock底层实现原理?Q30: Java创建线程的几种方式?Q31: 线程的start()与run()方法区别?Q32: MinIO分片合并失败如何处理,那残余临时分片文件的清理机制讲一下Q33: …… Q39:(又开始相亲式闲聊,老家在哪,base地哪里,问爱好,追问爱好,喜欢什么运动,会做饭嘛…)反问:对方部门业务。可以提高的地方。之后面试(or感谢信)的时间安排,希望提速,方便拒度子😆下午面的,第二天中午电话吵醒约二面。还有字节腾讯百度知乎什么的面经,都这些天热乎的等想起来了再发
点赞 评论 收藏
分享
评论
2
12
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务