ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

阿里P6设计模式面经:单例五种写法、观察者模式、策略模式、建造者模式

2026/8/9 3:03:33 拓冰建站 浏览量
阿里P6设计模式面经:单例五种写法、观察者模式、策略模式、建造者模式 上篇算法聊完,这篇进入设计模式。P6面试考的不是"你知道几个模式",而是"Android源码里哪些地方用了?你在项目里怎么用?"最常考四个:单例、观察者、策略、建造者。知道模式不难,难的是结合Android源码讲清楚。今天8道题覆盖P6设计模式核心考点。Q1:单例模式五种写法?各有什么问题?饿汉式:类加载时创建实例,线程安全但可能资源浪费。private static final Singleton INSTANCE = new Singleton();懒汉式(synchronized):延迟创建但性能差,每次获取都要锁。双重检查锁(DCL):volatile + synchronized + 两次null检查,兼顾延迟和线程安全。静态内部类:用内部类加载机制保证线程安全,代码简洁。getInstance时触发内部类加载。枚举:enum Singleton { INSTANCE; }最简洁,防反射防序列化。Joshua Bloch推荐。追问:Android里哪些是单例?InputMethodManager用DCL,AccessibilityManager用synchronized懒汉式,各种Manager基本都是单例。因为系统服务全局只需一个实例。Q2:DCL单例为什么要volatile?不用会怎