Android 中高级面试核心考点汇总与解析
随着 Android 技术生态的成熟,开发者需要持续更新知识体系以保持竞争力。本文基于大厂高频面试题及行业最新技术趋势,系统梳理了 Java 基础、Android 核心组件、UI 渲染、网络通信、架构设计、性能优化、源码分析及新技术应用等关键领域,旨在帮助开发者进行系统性复习与技术提升。
第一章 Java 基础
Java 是 Android 开发的基石,深入理解其底层机制至关重要。
1.1 面向对象与多态
- 静态内部类与非静态内部类:非静态内部类持有外部类实例引用,可访问外部类成员;静态内部类不持有引用,类似独立类,常用于工具类或常量定义。
- 多态性:指同一操作作用于不同对象产生不同行为。实现方式包括继承重写和接口实现。JVM 通过动态绑定(虚方法表)在运行时确定调用哪个方法。
- 接口与继承区别:接口侧重行为规范,支持多重继承;类侧重状态与行为封装,单继承。Java 8+ 接口支持默认方法和静态方法。
1.2 并发编程
- 线程池原理:核心参数包括核心线程数、最大线程数、队列容量、拒绝策略等。使用线程池可复用资源、降低开销、提高响应速度。
- Executors 创建风险:
Executors.newFixedThreadPool等工厂方法允许队列无限增长,易导致 OOM。推荐手动通过ThreadPoolExecutor构造函数创建,明确指定队列大小。 - BlockingQueue:阻塞队列用于生产者 - 消费者模型。常见实现有
ArrayBlockingQueue(数组)、LinkedBlockingQueue(链表)、SynchronousQueue(同步移交)。 - 锁机制:
synchronized是 JVM 层面的关键字,自动加解锁;ReentrantLock是 API 层面的锁,支持公平锁、可中断、条件变量(Condition),灵活性更高。
1.3 JVM 与集合
- 内存结构:堆(Heap)存储对象实例,栈(Stack)存储局部变量,方法区存储类信息。GC 主要回收堆内存。
- 类加载机制:双亲委派模型确保类的唯一性和安全性。加载顺序为 Bootstrap -> Extension -> Application ClassLoader。
- HashMap 扩容:采用链地址法解决哈希冲突。扩容时容量翻倍,元素重新计算位置。JDK 1.8 后红黑树化阈值提升查询效率。
第二章 Android 基础
2.1 Activity 生命周期
Activity 是用户交互的入口。关键生命周期包括 onCreate, onStart, onResume, onPause, onStop, onDestroy。需处理配置变更(如屏幕旋转)时的数据保存,避免重复初始化。
2.2 Fragment 管理
Fragment 嵌入 Activity 提供模块化 UI。需注意 Fragment 事务的提交时机,避免在 onSaveInstanceState 之后提交事务导致异常。推荐使用 FragmentManager 配合 setRetainInstance 保持状态。
2.3 Service 与 Intent
Service 用于后台长时间运行任务。分为前台服务(Foreground)和后台服务(Background)。Intent 用于组件间通信,支持显式与隐式调用,注意权限声明与匹配规则。


