Java
- equals和==的区别?equals和hashcode的关系?
- String、StringBuffer和StringBuilder的区别?
- 效率是:StringBuilder>StringBuffer>String ?
- 关于多态的理解?主要运用?
- HashMap的特点是什么?HashMap的原理?
- 泛型? 类型擦除?
- 动态代理? 静态代理?
- 线程状态? 线程池原理? 阻塞队列? 非核心线程池创建条件?
- 死锁触发的条件? synchronized? Lock (通过代码手动加锁)?
- volatile 原理?
- 多线程安全的 map 子类?
-
Kotlin
== 与 ===?
- open 关键字作用?
- init 块是什么? 调用时机?
- 与 switch 比 when 的优势?
- 手写kotlin 实现建造者模式?
- 什么是 kotlin 中的域函数? let/run/with/apply/also
- kotlin 静态变量/方法?
- kotlin 中的数据类是什么?
- lazy 和 latainit 的区别?
- 如何创建单例?
- 内联函数? (面向切面编程) 中缀函数?
-
Android
Activity 的启动模式?
- Activity 的生命周期?
- 屏幕适配? 原理?
- Android 消息机制? ThreadLocal/MessageQueue/Looper/Handler
- Looper 为什么不会导致主线程卡死?
- View 事件分发机制/绘制原理?
- Bitmap 的内存计算方式?
- Bitmap 的压缩方式?
- 超大图的加载方式?
- Binder? 与其他IPC方式的优缺点?通信过程/原理?
- 有哪些序列化方式? 特点?
- Activity 的启动流程?
- 平时做了哪些性能优化?
- Glide 与其他图片加载框架的区别?
- Glide 的缓存实现机制?
- Retrofit 的设计模式和解耦理念?
- ARouter 实现原理?
- RxJava 的各种操作符及作用?
- Lifecycle 的设计模式?
- DataBinding 的原理?
- 观察者模式?
- 组件化和插件化?
- 热更新?