当前位置: 首页 > news >正文

Java面试趣事:从死循环到分段锁


互联网大厂Java开发岗终面现场

面试官(推了推黑框眼镜):马小帅是吧?先说下HashMap扩容机制? 马小帅(抓耳挠腮):这我知道!默认初始容量16,默认负载因子0.75...扩容时链表转红黑树! 面试官(点头):那多线程下HashMap会有什么问题? 马小帅(拍大腿):死循环!我之前用synchronized加锁解决过! 面试官(追问):如果要用线程安全的Map实现呢? 马小帅(突然站起):ConcurrentHashMap!它用分段锁+CAS优化... 面试官(露出微笑):不错啊小伙子


第二轮提问 面试官(翻看简历):说下JVM内存模型? 马小帅(比划手势):堆存对象!栈存局部变量!方法区放类信息...元空间替代永久代! 面试官(敲键盘):G1垃圾收集器如何实现可预测停顿? 马小帅(额头冒汗):把堆分成多个Region...优先回收垃圾最多的区域... 面试官(追问):说下双亲委派模型? 马小帅(突然兴奋):类加载器有四层!先让父类加载器尝试加载...打破的话比如Tomcat自定义类加载器!


第三轮技术攻坚

经典错误示范

// 线程池创建反例
ExecutorService executor = new ThreadPoolExecutor(2, 4,60L, TimeUnit.SECONDS,new LinkedBlockingQueue<>()
);

正确姿势

// 推荐使用工厂方法创建
ExecutorService executor = new ThreadPoolExecutor(2, 4,60L, TimeUnit.SECONDS,new LinkedBlockingQueue<>(100), // 指定队列容量new ThreadPoolExecutor.CallerRunsPolicy() // 拒绝策略显式声明
);

MySQL索引失效场景

  1. 使用LIKE '%abc'前导通配符
  2. 对字段进行函数操作 WHERE YEAR(create_time) = 2023

相关文章:

  • Vue 3 异步组件
  • n8n工作流自动化平台的实操:解决中文乱码
  • 【Elasticsearch】实现气象数据存储与查询系统
  • MySQL快速入门篇---数据库约束
  • list的两种设计
  • 为什么需要启动探针(StartupProb)?
  • 2845. 统计趣味子数组的数目
  • PMP-第六章 项目进度管理(二)
  • 2025年深圳杯数学建模(东三省)B题【颜色转换】原论文讲解
  • 给文件内容加行号
  • 十一岁少年叶珉雪用艺术点亮公益之路 个人原创公益演唱会传递大爱与担当
  • JVM 一文详解
  • 轻量级RTSP服务模块:跨平台低延迟嵌入即用的流媒体引擎
  • 自定义Dockerfile,发布springboot项目
  • STL之list容器
  • 探索 C++23 std::to_underlying:枚举底层值获取的利器
  • [方法论]软件工程中的设计模式:从理论到实践的深度解析
  • [Windows] Kazumi番剧采集v1.6.9:支持自定义规则+在线观看+弹幕,跨平台下载
  • leetcode0096. 不同的二叉搜索树-medium
  • 大型语言模型个性化助手实现
  • 莫斯科一机场实施临时限制措施
  • 新加坡国会选举投票抽样结果公布,执政党已获超半数议席
  • 消费持续升温,这个“五一”假期有何新亮点?
  • 港股5月迎开门红,恒生科指涨3%,欧股开盘全线上扬
  • 国铁集团去年收入12830亿元增3%,全年铁路运输利润总额创新高
  • 赵乐际主持十四届全国人大常委会第十五次会议闭幕会并作讲话