京东后端开发实习二面 55min

1. 请简单介绍AI相关基础知识及向量的概念。
2. 搭建大模型需要开展哪些工作?核心难点是什么?
3. 项目中哪部分内容较复杂?复杂点体现在哪里?最终如何解决?
4. 雪花算法的原理是什么?Snowid有哪些特性与优势?会出现耗尽的情况吗?
5. 缓存穿透的解决方案有哪些?如何处理缓存与数据库不一致的问题?
6. CRUD操作中哪些属于幂等操作?如何保证接口的幂等性?
7. 持续向RDS插入数据会引发哪些问题?
8. 线程池处理任务的完整流程是什么?核心参数应如何设置?
9. 如何从系统层面优化以避免消息积压问题(可采用限流、有损策略)?
10. 消息队列的消费顺序问题应如何解决?
11. JVM发生OOM时的排查思路与方法是什么?
12. JVM的组成部分有哪些?
13. 输入网址后,浏览器到页面加载完成的完整过程是什么?
14. 你如何理解Spring框架?
全部评论

相关推荐

12-21 13:10
门头沟学院 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
点赞 评论 收藏
分享
11-26 09:30
复旦大学 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 10:17
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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