-
Java中HashMap和HashTable的区别?
-
HashMap 和 HashSet 的区别
-
请说出 ArrayList和LinkedList的区别?
-
请说出 ArrayList和LinkedList的区别?
-
Java 中 Set 与 List 有什么不同?
JVM
-
JVM的内存分配
-
Java的垃圾回收机制
-
JVM类加载的过程
多线程与并发
-
多线程与并发基础
-
JMM与volatile关键字
-
synchronized的实现原理
-
CAS、Unsafe类以及Automic并发包
-
AQS的实现原理
-
ReentrantLock的实现原理
-
ThreadLoacal的实现原理
-
线程池的实现原理
-
Java线程中断机制
-
Java等待与唤醒机制
Android
Android部分的内容涵盖比较广。主要包含了常问的基础问题、Android消息机制、事件分发机制、View的绘制流程、屏幕刷新机制、性能优化、Framework专题、Jetpack组件原理,以及第三方框架的实现原理等。技术深度基本可以应对国内一线大厂。
Android基础知识
-
Android基础知识汇总
-
SparseArray实现原理
-
ArrayMap的实现原理
-
SharedPreferences
Android消息机制
-
简述Handler的实现原理
-
一个线程有几个Handler?一个线程有几个Looper?如何保证?
-
Handler线程是如何切换的?
-
Handler内存泄漏的原因是什么?如何解决?
-
子线程中使用Looper应该注意什么?有什么用?
-
MessageQueue是如何保证线程安全的?
-
我们使用Message的时候如何创建它?
-
Looper死循环为什么不会导致应用卡死?
-
能不能让一个Message被加急处理?
-
Handler的同步屏障是什么?
-
Handler的阻塞唤醒机制是什么?
-
ThreadLocal的实现原理
-
HandlerThread是什么?
-
IntentService是什么?
-
IdleHandler是什么?
View事件分发机制
-
事件分发机制流程
-
ViewGroup中的mFirstTouchTarget是一个什么东西,它有什么作用?
-
如果在ViewGroup中拦截了ACTION_DOWN事件会怎样?
-
为什么设置了onTouchListener后onClickListener不会被调用?
-
为什么一个View设置了setOnTouchListener会有提示没有引用performClick方法的警告?
View的绘制流程
-
简述View的绘制流程
-
XML解析原理
-
MeasureSpec是什么?
-
requestLayout、invalidate与postInvalidate
Android屏幕刷新机制
-
屏幕刷新机制概述
-
Choreographer详解
-
SurfaceFlinger
-
丢帧一般是什么原因引起的?
-
如果在屏幕快刷新的时候才去onDraw绘制会丢帧么
-
如果快速调用10次requestLayout,会调用10次onDraw吗?
-
简述UI渲染流程
580%2525E8%2525BF%2525B0ui%2525E6%2525B8%2525B2%2525E6%25259F%252593%2525E6%2525B5%252581%2525E7%2525A8%25258B) -
View 刷新机制
性能优化
-
内存优化策略
-
UI界面及卡顿优化
-
App启动优化
-
ANR问题
-
包体积优化
-
APK打包流程
-
电池电量优化
-
Android屏幕适配
-
线上性能监控1–线上监控切入点
-
线上性能监控2–Matrix实现原理
Framework
-
Binder与AIDL
-
Binder实现原理
-
Android系统启动流程
-
InputManagerService
-
WindowManagerService
-
ActivityManagerService
-
SurfaceFlinger
-
APP启动流程
-
PMS安装与签名校验
-
Dalvik与ART
-
Fragment核心原理