【吊打面试官】厦门6年Java开发面试题与答案(技术篇)

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯

本人详解
作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》
公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题
中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯
转载说明:务必注明来源(注明:作者:王文峰哦)

【吊打面试官】厦门6年Java开发面试题与答案(技术篇)

  • 学习教程(传送门)
        • **一、Java基础**
        • **二、并发编程**
        • **三、JVM与性能调优**
        • **四、数据库与优化**
        • **五、框架与中间件**
        • **六、分布式与系统设计**
        • **七、编码与算法**
        • **八、综合提问**
      • **总结**
  • 学习教程(传送门)
  • 往期文章

学习教程(传送门)

1、掌握 JAVA入门到进阶知识(持续写作中……
2、学会Oracle数据库用法(创作中……
3、手把手教你vbs脚本制作(完善中……
4、牛逼哄哄的 IDEA编程利器(编写中……
5、吐血整理的 面试技巧(更新中……


一、Java基础
  1. HashMap的底层实现原理?JDK1.8后的优化是什么?
    答案

    • 基于数组+链表/红黑树实现,通过哈希算法确定键值对的位置。
    • JDK1.8后,当链表长度超过8且数组长度≥64时,链表转为红黑树,提升查询效率;哈希冲突时采用尾插法避免死链。
    • 线程不安全,多线程环境下推荐使用ConcurrentHashMap
  2. Java中volatile关键字的作用?如何保证可见性和有序性?
    答案

    • 保证变量的可见性:修改后立即同步到主内存,其他线程读取时强制刷新本地缓存。
    • 禁止指令重排序:通过内存屏障(Memory Barrier)实现。
    • 不保证原子性(如i++需结合synchronizedAtomicInteger)。

二、并发编程
  1. ReentrantLock和synchronized的区别?
    答案

    • API层面ReentrantLock需手动加锁/释放,支持公平锁、可中断、超时等待;synchronized是JVM关键字,自动释放锁。
    • 性能:JDK1.6后synchronized优化后性能接近,高竞争场景下ReentrantLock更灵活。
    • 功能扩展ReentrantLock可通过Condition实现分组唤醒。
  2. 线程池的核心参数和工作流程?拒绝策略有哪些?
    答案

    • 参数:核心线程数、最大线程数、任务队列、线程存活时间、拒绝策略。
    • 流程:任务提交后优先使用核心线程,队列满后创建非核心线程,超过最大线程数触发拒绝策略。
    • 拒绝策略AbortPolicy(抛异常)、CallerRunsPolicy(调用者线程执行)、DiscardOldestPolicy(丢弃最老任务)、DiscardPolicy(静默丢弃)。

三、JVM与性能调优
  1. 如何排查OOM(内存溢出)问题?常见的OOM场景有哪些?
    答案

    • 工具jmap生成堆转储文件,MATVisualVM分析对象占用。
    • 场景:堆内存不足(对象过多)、方法区溢出(动态类生成)、栈溢出(递归过深)、直接内存溢出(NIO未释放)。
    • 调优:调整堆大小(-Xms/-Xmx)、优化代码(避免内存泄漏)、使用弱引用等。
  2. G1垃圾回收器的特点?与CMS的区别?
    答案

    • G1:面向大堆内存,分区(Region)回收,可预测停顿时间,适合高吞吐和低延迟场景。
    • CMS:基于标记-清除算法,追求低停顿,但会产生内存碎片,Full GC时可能长时间停顿。

四、数据库与优化
  1. MySQL索引失效的常见场景?如何优化慢查询?
    答案

    • 失效场景:对索引列使用函数、类型隐式

发布者:admin,转转请注明出处:http://www.yc00.com/web/1754863751a5209510.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信