ByteDance杭研Android面试经历

想想还是有必要记录下这次失败的面试经历,过段时间回头看或许会有点收获

一面

  1. 自我介绍
  2. 软、弱引用
  3. HashMap原理
    • 扩容机制(reSize)
    • 线程安全(HashTable、ConcurrentHashMap)
  4. Handler内存泄漏,如何解决
  5. View绘制流程
  6. View事件分发机制
    • ACTION_DOWN
    • ACTION_UP
    • ACTION_MOVE
    • ACTION_CANCEL
  7. onSaveInstanceState调用时机
  8. 图片加框框架缓存
  9. 如何让静态方法和非静态方法共享同一把锁
  10. 扑克洗牌算法(随机数Random)
    • 首先想到List存储
    • 然后要求不使用额外空间
  11. 二叉树层序遍历

二面

  1. 自我介绍
  2. 组件化实现
  3. 线程间同步方式
    • synchronized和volatile
    • lock
    • wait/notify
    • ReentrantLock
    • ThreadLocal
  4. Activity A启动Activity B生命周期(AMS)
  5. 列表卡顿原因,如何优化
  6. 线程池实现原理
  7. 进程方法调用(Binder)
  8. Activity启动流程
  9. HTTPS
  10. 类锁和对象锁
  11. 找出字符串的最长不重复子串

三面

  1. 自我介绍
  2. 手写JSON解析器
  3. Synchronized实现原理
  4. Lock实现原理
  5. Synchronized和Lock效率对比
  6. Fragment生命周期
  7. RecyclerView优化
  8. Parcelable
    • 与Serilizable对比
  9. invalidate和requestLayout
  10. OKHTTP安全优化
    • HTTPS
    • HostNameVerifier
    • SSLSocketFactory

总结

  1. 自我介绍可以提前准备好,包括基本信息(毕业时间、院校),最近工作经历,如果经历较多,选最近两家即可
  2. 面试过程中有个别知识点不清楚很正常,不要怀疑自己能力,面试结束后好好梳理一下就好了
  3. 如果想增加Offer概率,除了面试题外,最有能展示给面试官1-2个亮点(开源项目|博客|技术深度|广度等)
  4. 面试中最好不要有猜答案的表现,比如‘好像’‘是吧’这样的回答,对于有些不太清楚的直接说不太清楚就好了
  5. 另外,面试过程中和面试官的沟通表达同样很重要

最终挂在三面了,整个面试流程一面没啥压力,二面时状态不太好,很多原理回答得很模糊,感觉挂了,然后又收到了三面的通知,三面感觉回答得一般,最终在三面挂掉了

转载于:https://juejin.im/post/5c9ef46051882567c605e4e4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值