前言
本人是某双非大二学生,面的是字节移动中台的客户端。
首先在这里很感谢帮我内推的学长,从投递前到现在刚完成三面都给了我很大的帮助,学长orz
字节一二三面
一面(1h4min)
date:(6/15)
- 自我介绍
- 介绍MVP,和MVC区别,优势在哪,view层和model层能直接交互吗。
- 介绍MVVM,和MVP的区别。
- Activity的生命周期,从Activity A启动Activity B生命周期的变化。
- Handler,使用时有哪些需要注意的。
- Handler防止内存泄漏的方法。
- WeakReference的回收时机。
- 几种单例模式,细说懒汉式。
- volatile。
- 了解哪些线程安全的集合。
- ConcurrentHashMap。
- 什么是乐观锁。
- 锁升级。
- 消费者生产者模型。 (操作系统还没学😅)
- 内部类。
- 匿名内部类和静态内部类。
- 内部类为什么可以访问外部的变量。
- 内部类在字节码里的类名是不是自己定义的那个类名。
- 扰动函数。
- equals方法和hashcode方法的作用与联系。
- 项目中的滑动冲突如何解决的。
- 滑动冲突有哪些处理方法,外部拦截需要重写哪个方法。 (这里答得不好,扯到内部拦截法上去了😄)
- 算法题:高位对齐版的两数相加。
- 反问。
问题有点多,暂时只记得这些了
二面(33min)
date:6/17
- 介绍下项目。
- SP类是怎么封装的。(这里我说了下自己是怎么对SP工具类优化的,还被怼了,我是fw呜呜呜)
- SP是线程安全的吗,进程安全呢?
- SP线程安全实现原理,如果让你自己实现进程安全,你会怎么做?
- 项目中滑动冲突的解决方法和原理,我说看过事件分发机制的源码,然后面试官就说那你肯定看过recyclerview的源码吧 (这里我???)就把recyclerview的缓存机制说了一下。
- recyclerview的优点。
- 能实习多久。
- 算法题:螺旋矩阵 II。
- 反问。
三面(50min)
date:6/21
- 自我介绍
- 事件分发机制具体用过吗。
- 给了一个场景题,一个listview里每个item有一个button,如果一直按住这个button,屏幕会怎么滑动,事件会怎么分发。(这里问的很详细,面试官引导着答了很多方面)
- 同样是这个listview,如果有两个button位置重叠,会分发给哪一个,如果是你你会怎么设计。
View绘制流程,在调用onResume方法时屏幕可不可见。(这里我回答判断ViewRootImpl是否初始化) - 除了判断ViewRootImpl是否被初始化以外还可以怎么判断。
算法题:打印一个xml布局。 - 了解过哪些集合。(这里我回答ArrayList,HashMap)
- ArrayList和LinkedList内部实现,区别,使用场景。
- 怎么去遍历一个集合,这里面试官想让我回答Iterator。
- 问项目。
- 反问。
来个hr面求求了🙃(内心独白)
结果6/23更新:已收到offer。
为应对字节面试,我做了哪些准备?
(一)调整自己的心态,正确面对得失
面试中常见的问题,主要是心态,面试调整心态是第一位的,如何调整成最佳心态呢?很多求职者在面试过程中自己思路不清晰,语言不流畅,说话毫无逻辑,会不断否定自己,归根结底都是面试心态问题,所以调整自己的心态,正确面对得失是非常重要的,我的方法是给自己足够的心理暗示。
(二)提升技术,扩宽知识
对于程序员来说,要想成长为一名行业内的大牛大神级别的人物,那么唯一的办法就是通过学习,来不断提升自己的技术,扩宽知识,达到一定的高度和深度。那么如何提升自己的技术,扩宽自己的知识储备呢?
以下是我个人整理的一些资料,如有需要请在文末领取,希望可以给各位提供一些帮助:
MVP模式详解
Activity全方面讲解
HandlerThread详解
Android内存优化
AsyncTask详解
IntentService详解
Android Context详解
多线程断点续传
热修复原理
Android推送技术解析
Android开源库集
对于大厂面试,我最后想要强调的一点就是心态真的很重要,是决定你在面试过程中发挥的关键,若不能正常发挥,很可能就因为一个小失误与offer失之交臂,所以一定要重视起来。另外提醒一点,充分复习,是消除你紧张的心理状态的关键,但你复习充分了,自然面试过程中就要有底气得多。
以上内容中所有的学习资料、面试资料,均可以免费提供,希望大家都能开开心心,顺利拿下自己心仪的offer!
最后提醒:以上整理的所有PDF,均可以免费分享,有需要的朋友,扫描下方二维码进群!联系管理员免费获取!加入我们的圈子领取资料,和我们一起学习交流吧!~