字节跳动 六面凉经
抖音社交
一面 60min
项目
volitale与synchronized的区别
手写单例
匿名内部类如何持有外部类对象
内存泄漏的概念
内存泄漏的场景
内存泄漏检测的工具
handler原理,sendMessage与sendMessageDelay如何保证Message放入MessageQueue中的顺序
两个Message相隔5秒,这5秒内线程会一直阻塞吗
自定义 View如何特殊处理wrap_content,padding的实现
MVVM和MVP 的区别(引出了一系列问题,不是很了解就直接说不了解比较好)
LiveData与RxJava的区别
LiveData生命周期感知如何实现
介绍RxJava
https与http的区别,中间人如何修改密钥
算法:二叉树z字形打印
二面 70min
项目
final、finally与finalize的区别
java开启一个线程的方式
Thread.start()与直接调用run()的区别
Java默认提供了几种线程池
thread{ i++ }执行10次结果,如何让i最后等于10
synchronized与reentrantlock区别
死锁
悲观锁乐观锁
gc垃圾回收
垃圾标记阶段,Python如何实现的断开循环引用
Retrofit返回的是什么数据类型
服务器返回的数据有哪些类型,为什么不能用xml类型返回
请求数据这个过程发生了什么
get与post请求的区别,get与post携带数据的区别
java注解
kotlin扩展函数原理
算法:两个链表相加
三面 50min
- main方法执行之前发生了什么
public class Main { public static void main(String[] args) { System.out.println(Main.class.getName()); } }
System.out.println(“a”)将字符输出到屏幕发生了什么
双击QQ发生了什么
浏览器输入url发生了什么
根据前序遍历和中序遍历输出后序遍历
如果排期只有一周的任务,但是以我的能力需要两周才能完成,这个时候你会怎么办。
k个一组反转链表
抖音电商
一面 50min
实习学到的架构
MVVM
Dagger原理
livedata原理
进程和线程
操作系统IO模型
进程通信方式
管道通信原理
TCP协议如何实现可靠传输
UDP如何实现可靠传输
java创建线程
线程池原理
线程池拒绝策略
synchronized与reentrantlock实现方式的区别
AQS原理
handler原理
Retrofit原理
算法: 二叉树右视图 — 非递归实现
二面 50min
Navigation的优缺点
如何实现的自定义navigate方法切换fragment,如何让被覆盖的fragment感知到生命周期
gc如何判断垃圾对象
成员变量与局部变量的区别,局部变量的值一定是存放在堆中吗()
jvm类加载的时机
jvm类加载过程
双亲委托机制是什么
双亲委托机制什么时候会被破坏
内存泄漏是什么
volatile的作用
写一个死锁
算法:判断A是否是B的子树
三面 50min
自己是如何学习Android的
实习过程中做的需求说一下
实习过程中的难点说一个
实习过程中和哪些人接触的比较多
如何和别人沟通的
实习的收获
挑一个项目说一下
里氏替换原则
http状态码
http多路复用
数据库
拿了哪些offer
算法 汉字表示的数字转成阿拉伯表示。
#面经##校招##字节跳动##安卓工程师#字节连着两个部门挂也是很难受了,感觉秋招好难啊,挂了好多面试,好多公司投了也没啥反应┭┮﹏┭┮