小米Java基础专项面试:小米Android开发覆盖MIUI系统定制、IoT设备互联。技术栈偏底层,面试官喜欢问系统级原理和性能数据。技术方向偏向MIUI定制、IoT互联。特色专项包括MIUI系统定制与IoT设备开发。今天8道题覆盖小米Java基础专项面试核心考点。
Q1:GC算法和垃圾收集器对比?
基础算法:标记-清除(有碎片)、标记-复制(浪费一半空间但无碎片)、标记-整理(无碎片但慢)。分代策略:新生代用复制算法,老年代用标记-整理。收集器演进:Serial→Parallel→CMS(低停顿)→G1(Region化管理)→ZGC(<10ms停顿)。
深度解析:GC 目标是回收不可达对象。判断可达性用 GC Roots 引用链。Android ART 默认分代、并发、部分压缩,尽量缩短 Stop-The-World。容易踩的坑是:频繁创建临时对象会引发频繁 Minor GC,造成内存抖动和卡顿。;面试官常追问:追问:finalize 为什么不推荐?不确定性高且拖慢回收。。
追问:G1的Mixed GC是什么?同时回收新生代和部分标记为可回收的老年代Region,避免Full GC。
Q2:synchronized和ReentrantLock的区别?
synchronized是JVM关键字,自动释放锁;ReentrantLock是API类,必须手动unlock放finally里。ReentrantLock多了公平锁、可中断、tryLock超时、多Condition等高级特性。JDK6后synchronized大优化——偏向锁→轻量级锁→重量级锁的升级链让性能差距不大了。
![打卡信奥刷题(3676)用C++实现信奥题 P12271 [蓝桥杯 2024 国 Python B] 括号与字母-171主机测评](https://www.171host.com/wp-content/uploads/2026/11/20261107050125-6aeeb0a5a5ade-220x150.png)

