当前位置: 首页 > 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
http://www.dtcms.com/a/169987.html

相关文章:

  • 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
  • 大型语言模型个性化助手实现
  • 深度学习经典网络之LeNet-5详解
  • 【BLE】【nRF Connect】 精讲nRF Connect自动化测试套件(宏录制、XML脚本)
  • 最大子段和 Java
  • 青少年编程与数学 02-018 C++数据结构与算法 24课题、密码学算法
  • JavaScript基础-流程控制概念
  • 第六章,BGP---边界网关协议
  • Redis从入门到实战实战篇2
  • 《应用开发突围指南:敏捷开发的实战精髓》
  • ecs网站备份,ecs网站备份的方法
  • 生成式 AI 的阐释