字节客户端 一二三面+HR面
一面 8.15 70min 20:00
面试官很年轻,气氛不错,面试体验还行,会引导,以下是凭记忆梳理的,有遗漏
问到的八股
进程线程区别
jvm垃圾回收算法,各用在哪里
讲一下hashmap(扩容、插入、null值、为啥用数组加料表加红黑树等等,问挺细的 )
基于上一个问题引申出来的:
hashmap怎么做到线程安全、线程安全的数据结构
Android相关
fragment生命周期
activity生命周期
在oncreate方法中调用finish方法,后面的生命周期还会执行吗
Android进程间通信
handler
looper中的死循环为什么不会阻塞
内存泄漏
两个activity之间传图片
算法
三数之和
很多开放性问题
项目中遇到的问题呀,怎么解决的呀
有没有过什么优化细节呀
有没有研究过框架源码呀
反问
业务
工作体验
二面 8.16 20:00 83min
自我介绍
flutter开发者协会都做了些啥
Java锁机制
类加载机制,为什么要用双亲委派
各种锁的实现原理(哭了)
Android相关
activity启动模式
activity A启动activity B,A B 的生命周期
四个activity A B C D 启动模式依次为 default singletask singleinstance singleinstance,依次启动,共有几个栈,每个activity各位于什么栈
如何将一个activity在另一个栈中启动
activity A的启动模式是 singletask,目前栈中已经有A 的实例,且该实例上有activity B,再启动一个A,问A B 的声明周期
onnewintent
最后问了Android有没有哪块儿比较熟悉的,他想挑着问,可是菜鸡没有哪儿敢说熟悉
算法
判断链表是否有环,有环找出环入口(不能用快慢指针,时间复杂度N 空间复杂度1 ,可以修改节点的value next)
二面面试官会看一面面试官的记录,并且还会针对记录深入
三面 8.17 57min 18:00
自我介绍
讲一下项目,难点啥的,就让你自己说
然后又详细讲了下MVP
八股
三大特性
说一下多态性
多态的底层是怎么实现的
下面这俩有啥区别,为什么a更快?
int *a = new int[16];
int b[16] = {0} ;
a[0] = 1 ;
b[0] = 1
设计一个粘贴板,这个问了好久(怎么拷贝,拷贝格式啥的)
非递归后序遍历
一个数组,整形数字,求i到j的时间复杂度
还是那个数组,很长很长,设计一个函数,求i到j的值,并且这个函数会被多次调用,如何优化时间复杂度
如果是二维数组呢?
反问
问部门相关,团队多少人(成都这边二十多个,总共一百多个)
对Android这个岗位如何看待
HR面 8.19 10:30 28min
自我介绍
实习,遇到什么问题,怎么解决
为什么创办flutter开发者协会
总之就是聊天,一些HR面常见的问题
反问
问前三面面评,她说这个不能不说
在字节的工作体验
后续流程(说是会等得比较久,会等一批面完)