1. 第一份

  1. 算法:链表的逆置
    算法思路不正确
  2. Java线程池
    照着源码讲了一遍
    追问:LinkedBlockingQueue有什么作用?
    讲的不清楚
    追问:线程同步有什么办法?
    只回答了锁
    追问:锁有哪些?可用于什么场景?
    synchronized、lock、可重用锁、CAS
    基本原理回答正确,但不清楚具体场景
  3. ThreadLocal作用
    不清楚
  4. Handler使用的时候需要注意什么问题?
    内存泄露
    内部类、弱引用,静态内部类
    onDestroy移除消息
    追问:Handler都能干什么事?
    卡顿丢帧检测
  5. Java里面的几种引用区别?使用场景
    原理回答正确,使用场景理解不够深入
  6. 卡顿检测和优化
    检测方法:BlockCanary、TraceView、屏幕刷新机制
    造成卡顿的原因回答正确
    优化:扁平化布局、过渡绘制、刷新次数区域控制
    主线程耗时操作、SP初始化、不要放大对象,不要频繁提交,减少IO操作
    自定义View的onDraw方法
  7. SP内部数据结构
    XML文件,map kv形式
    追问:线程安全吗?
    回答正确
    追问:进程安全吗?
    不安全
    追问:怎么保证进程安全?
    包一层ContentProvider
    追问:用SQLite可以吗?为什么
    应该可以
  8. 进程间通信的办法
    AIDL,Binder,除了Binder不知道其他的
  9. LruCache
    基本原理回答正确
    追问:get/put方法设计的时候需要注意什么问题?
    LinkedHashMap不安全,加同步锁
  10. HTTPS
    基本流程正确,但不完善,不知道如何优化
  11. Kotlin遇到的坑?
    没遇到什么坑,只觉得有好处
    追问:有什么好处
    简洁、语法糖
    追问:object和compaion object区别
    回答的比较片面
    追问:object实现单例的原理
    回答错误

2. 第二份

  1. 2sum算法
    给出了双重循环的办法,但算法不完善
    追问:是否有更快的办法?
    没想法
  2. I am a student变成student a am I
    没想法
  3. Java的HashMap的哈希冲突
    回答正确
    追问:HashMap和HashTable,ConcurrentHashMap
    回答正确,对比详细
  4. LinkedBlockQueue的作用
    基本原理回答正常,使用场景基本正确
  5. ThreadLocal作用,使用时需要注意什么问题?
    基本原理回答正确
    注意的问题:内存泄露相关,具体说的不太清楚
  6. 几种引用形式的区别
    内存控制上的区别回答正确、详细
    追问:具体使用场景
    能答出Weak的使用场景
  7. Bitmap使用的时候注意的问题
    颜色配置、过大(缩放、BitmapFactory、option)、及时recycle
    追问:Recycle了怎么办?
    磁盘缓存
    追问:Bitmap的OOM避免
    能说出基本的
    追问:Android 6.0和9.0上的Bitmap加载有什么区别
    基本方向正确,但不完全正确
    追问:565和8888区别
    占用空间问题,透明度信息
    追问:Bitmap在Android上变绿的问题,原因、解决?
    不了解
  8. MessageQueue
    Java层回答比较详细
    追问:死循环为什么不会阻塞主线程?
    回答错误
    追问:操作系统上对应什么IO复用模型?
    不太清楚
  9. 图片加载框架的节流设计
    按需加载,其他不了解,提示了以后,webp
    追问:怎么知道缓存?
    不清楚
    追问:其他节流格式
    回答不完全正确
    追问:png和jpeg区别
    不清楚
  10. ConstraintLayout、LinearLayout、FrameLayout、RelativeLayout性能&使用场景
    基本测量、layout原理对比回答正确
    使用场景回答比较抽象,不是很具体
    追问:列表卡顿优化
    注意onDraw方法、避免重复创建
    追问:结合以上几种Layout
    需要看具体使用场景,基本方向正确,但不是很具体
  11. http2
    不太清楚
  12. HTTP状态码
    301、302区别:不清楚
    404、403区别:404回答基本正确、403不清楚