字节跳动面试总体难度略高于阿里、华为,绝大多数都是在考察技术,对于技术方面的问题问了很多。而阿里偏向于综合素质考察,华为偏向于个人潜力考察。
一面
- Java的堆和栈区别
- Java的GC垃圾回收机制
- 什么是多态
- 进程和线程的区别
- 你在项目中做过哪些性能优化
- 如何优化页面卡顿
- Handler消息机制
- Android自定义View
- 你最常用的开源框架及其原理
- MVC模式与MVP模式
- HTTP和HTTPS的区别
- TCP的三次握手是什么
- 你用到过的加密算法
二面
- HTTP常见的请求方式及主要操作
- Java函数传入值和引用的区别
- Java中
String += “123”
的实现过程 - String、StringBuffer、StringBuilder的区别
- Java多线程编程
- LinearLayout与RelativeLayout对比
- 使用Fragment和View的对比
- 你所读过的开源框架及其原理
- 使用Service的业务场景介绍
- Service和IntentService的区别
- 编程实现二叉树深度优先遍历、广度优先遍历
总结
字节跳动的春招挂在了三面,具体过程不表(十分心痛)。
总得来说面试暴露出个人对于Java的基本概念掌握不够透彻,对于一些Android开发中的可选项没有做深层次的理解(例如:Fragment和View分别应用在什么场景)。