校招面经-京东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
全部评论

相关推荐

01-28 22:50
已编辑
重庆大学 Java
1. 自我介绍2. 用过Python嘛?3. 执行一个pySpark,他的底层操作是怎么样的?4. dataFrame和RDD有什么区别?5. 你主要负责哪一模块?6. 业务平台的基础架构,语言,各个模块怎么联系?7. 后端部分的业务业务逻辑?举个例子?8. 对图的的校验是干嘛的?(应该是我之前没解释清楚)9. 你们整个组负责啥?10. 你组内的小组负责平台那一部分?11. 组内如何分工?12. 慢查询是如何优化的?13. 讲你做的比较大的需求14. 境内外部署讲讲15. 业务方的资源分配和编译怎么做?16. 接口的稳定性如何保证?(没搞懂是问其他平台接口稳定性还是我们平台这个的稳定性?)17. 如何保证回滚到只是我写入的这一个?18. 回滚是已经写入还是没有写入的呢?19. 还有做过其他大的需求嘛?20. 你接触了多久大概可以干活?21. 血缘关系分析讲一讲22. ------以上是第二段实习内容,以下是第一段实习内容23. 第一段也在北京嘛?这个项目是独立负责嘛?24. 那你有独立负责某一块嘛(我个实习生能放心让我负责……)25. 接口耗时如何定位的?26. 对平台从头到尾了解嘛?27. 可以立刻到岗嘛?28. 接受加班嘛?29. 发布上线的流程30. 反问:后端是Python?面试表现?结果多少时候出?31. 无算法第二天约二面京东二面1. 自我介绍2. 又问读不读研,学校放不放3. 介绍下个人技术栈(后端+大数据)4. 跨系统的资源调度和数据一致性5. 境内外代码合并讲一讲怎么实现6. 介绍下系统架构(前端,后端,大数据),多个系统怎么进行联系调用7. 进一步讲解下apache spark中executor集群如何实现分布式一致。8. 语言和框架熟悉什么?(那边服务里大数据和后端都用Python)9. 算法:两个队列实现一个栈10. 为什么都是3、4个月的实习?反问:1. 进去是数据开发,还是后端开发,还是都要做?(都要做)2. 结果多久出6天后挂
点赞 评论 收藏
分享
评论
1
11
分享

创作者周榜

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