找offer蜜蜂 level
获赞
86
粉丝
11
关注
0
看过 TA
1283
门头沟学院
2026
Java
IP属地:深圳
暂未填写个人简介
私信
关注
2025-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
0 点赞 评论 收藏
分享
2025-12-03 06:25
门头沟学院 Java
实习拷打 1. 这块的 Mysql 这块有没有遇到过一些死锁什么的?可以简单讲一下,就是如果说遇到死锁,你认为死锁的原因,然后是触发了哪一个 Mysql 的锁?底层锁的机制。2. 就比如说现在造成那个死锁,那你认为是经常什么场景是会造成这种死锁?然后触发了哪一个底层的这个锁的机制原理?(举了个例子)3. 那借着你咱们下钻一下,就是如果说你这种场景,然后你去如何避免这种发生?逻辑还是不能动,但是你如何去避免它发生?或者你说,对,咱们这个底层的字段的索引有什么什么?有什么要求吗?避免这种死锁。4. 比如说你认为咱们这个唯一索引的字段的一个查询或者修改,然后它会产生一些死锁吗?不同事务。5. 这个字段是唯一索引,然后你两个事务都有更新这个字段,但不是一行数据,此时会不会造成一些死锁?它跟这个唯一索引有没有关系?如果不是唯一索引是普通索引,会不会造成死锁?6. 你有没有做过一些 GVM 的调优,或者是说您简单介绍一下你用 GVM 这个垃圾回收器是哪一款?7. 那这个垃圾回收器它最大的优势或者特征跟之前不一样的点在哪?(G1)8. GVM 内存,对,内存一个飙升溢出,有没有做过一些排查经验?或者是有一些思路9. CPU飙高10. 那你说到这个 CPU 标高,然后或者是堆内存溢出,你觉得你总结下来就是你的编程这块需要注意哪些可以避免到这些问题发生?11. 有没有用到过一些设计的模式和设计理念,这块您比较就是说相中或者是比较喜欢用哪一个?然后为什么用它有什么优势?
查看11道真题和解析
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务