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

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.xdnf.cn/news/3584.html

相关文章:

  • Lua 基础 API与 辅助库函数 中关于创建的方法用法
  • 基于STM32的智能摇头风扇设计(WIFI+语音控制)
  • CGAL:最小包围圆
  • 共铸价值:RWA 联合曲线价值模型,撬动现实资产生态
  • 基于机器学习的心脏病数据分析与可视化(百度智能云千帆AI+DeepSeek人工智能+机器学习)健康预测、风险评估与数据可视化 健康管理平台 数据分析与处理
  • k8s 探针
  • 基于ArduinoIDE的任意型号单片机 + GPS北斗BDS卫星定位
  • 基于「骑手外卖系统」串联7大设计原则
  • 【Hot 100】 146. LRU 缓存
  • Three.js在vue中的使用(二)-加载、控制
  • 【ICMP协议深度解析】从网络诊断到安全实践
  • Mysql常用语句汇总
  • centos7.0无法安装php8.2/8.3
  • ROS2学习笔记|创建工作空间并打印文件内容
  • 视频编解码学习二之颜色科学
  • UDP / TCP 协议
  • 使用DeepSeek协助恢复历史数据
  • GoFrame 奉孝学习笔记
  • ElasticSearch深入解析(十):字段膨胀(Mapping 爆炸)问题的解决思路
  • leetcode0096. 不同的二叉搜索树-medium
  • 从零开发一个B站视频数据统计Chrome插件
  • Android Compose 层叠布局(ZStack、Surface)源码深度剖析(14)
  • AI Agent开发第48课-DIFY中利用AI动态判断下一步流程-DIFY调用API、REDIS、LLM
  • 面试现场“震”情百态:HashMap扩容记
  • 昇腾的CANN是什么?跟英伟达CUDA的有什么联系和区别?【浅谈版】
  • 生成式 AI 的未来
  • [一文解决大模型微调+部署+RAG] LLamaFactory微调模型后使用Ollama + RAGFlow在Windows本地部署
  • LabVIEW软件设计锂电池故障模拟检测
  • 学习黑客安全基础理论入门
  • 深度学习经典网络之LeNet-5详解