字节跳动面试总体难度略高于阿里、华为,绝大多数都是在考察技术,对于技术方面的问题问了很多。而阿里偏向于综合素质考察,华为偏向于个人潜力考察。

一面

  1. Java的堆和栈区别
  2. Java的GC垃圾回收机制
  3. 什么是多态
  4. 进程和线程的区别
  5. 你在项目中做过哪些性能优化
  6. 如何优化页面卡顿
  7. Handler消息机制
  8. Android自定义View
  9. 你最常用的开源框架及其原理
  10. MVC模式与MVP模式
  11. HTTP和HTTPS的区别
  12. TCP的三次握手是什么
  13. 你用到过的加密算法

二面

  1. HTTP常见的请求方式及主要操作
  2. Java函数传入值和引用的区别
  3. Java中String += “123”的实现过程
  4. String、StringBuffer、StringBuilder的区别
  5. Java多线程编程
  6. LinearLayout与RelativeLayout对比
  7. 使用Fragment和View的对比
  8. 你所读过的开源框架及其原理
  9. 使用Service的业务场景介绍
  10. Service和IntentService的区别
  11. 编程实现二叉树深度优先遍历、广度优先遍历

总结

字节跳动的春招挂在了三面,具体过程不表(十分心痛)。

总得来说面试暴露出个人对于Java的基本概念掌握不够透彻,对于一些Android开发中的可选项没有做深层次的理解(例如:Fragment和View分别应用在什么场景)。