Java高频面试题+破解技巧

【拼多多集团-PDD校园招聘】内推链接:https://careers.pddglobalhr.com/campus/grad/detail?t=DBh7T7ZBAy,内推码:DBh7T7ZBAy。服务端研发工程师 期待你的加入!我们一起,无拼不青春!(通过此链接投递计入内推,内推简历优先筛选~)

一、基础必考题

  1. HashMap底层原理答:数组+链表/红黑树,负载因子0.75,扩容2倍。加分项:对比JDK1.7头插法(死循环风险)和1.8尾插法优化
  2. volatile关键字三步答法:① 保证可见性 ② 禁止指令重排 ③ 对比synchronized(不保证原子性)场景题:单例模式双重检测为什么要加volatile?

二、并发编程杀手锏

3. ThreadLocal内存泄漏

  • 致命细节:弱引用只针对key,value仍需remove()清理
  • 面试话术:"我们项目用完后会主动remove,同时包装成try-finally块保证执行"
  1. AQS实现原理手绘CLH队列图,重点说state变量和CAS操作实战套话:"ReentrantLock就是基于AQS,我们系统用它在秒杀场景做分布式锁"

三、JVM调优实战

5. OOM排查四板斧

  • ① jmap -heap看分区 ② MAT分析dump文件
  • ③ 结合jstack查线程 ④ 阿里Arthas实时诊断
  • 案例:"上次用MAT发现是Redis缓存大对象没设TTL"

四、Spring刁钻问题

6. 循环依赖解决

  • 三级缓存示意图必画!重点说earlySingletonObjects的作用
  • 陷阱题:"@Async注解为什么会导致循环依赖失败?"
全部评论

相关推荐

评论
点赞
1
分享

创作者周榜

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