多天前,我还瘫在床上,怀疑自己废了,怎么还没有去工作?
然后在某个下午,我欢乐地在一个群里进行技术交流(其实也就是划水),突然有个大佬发出个字节跳动的内推
【字节跳动】内推
地点:北京
学历:本科以上,计算机相关专业
优势:福利待遇好,业务线目前已经单独盈利,千万级DAU,有挑战有激情。
职位描述:
1、负责字节跳动旗下爆款娱乐社区皮皮虾APP Android端的开发工作。
2、负责产品移动端(Android)相关需求的设计与实现;
3、负责移动端(Android)架构设计、基础组件开发、性能优化等工作;
4、参与产品创意,共同打造新一代的亿级社区产品;
职位要求:
1、熟练掌握Java语言,深入理解语言特性;熟练掌握Android Studio或其他开发环境;
2、熟悉Android Sdk、Framework、基础组件,对重要系统特性和原理有一定的理解;
3、能够使用常用的第三方库、基础组件,并对其特性和实现原理有一定的了解;
4、了解MVC/MVP/MVVM等设计模式,熟悉面向对象思想及相关设计模式;
5、了解常用的Debug工具和方法,熟练掌握异常处理机制;
6、热爱技术,能够快速学习,始终保持技术更新;
7、关注业务,对产品有好奇心,关系用户体验;
8、有Kotlin开发经验者优先,有独立开发产品级APP经验者优先;
字节跳动哇,想想今日头条、抖音、悟空问答、西瓜视频 、火山小视频、 图虫、花熊等等,这些都是字节跳动旗下的APP
我,我想去,那我得好好问问,学一学经验(抱大腿),万一我可以去现场学习呢!
还好,大佬人还是挺nice的,给了我一个名额,现在讲讲我三面时的情况
一面 (视频面 3.23 50min)
- 单链表倒数第k个节点
- 平衡二叉树判断(面试官有给思路)
- 堆和栈的区别(内存分配的不同?)
- HTTP和HTTPS区别,在哪层
- TCP和UDP
- TCP怎么可靠
- 线程和进程
- 全局变量和局部变量(分配在什么地方)
- 多线程有什么用,怎么处理
- 优先级翻转
- 死锁
- LRU怎么实现
- 排序中稳定和非稳定
- 快排是稳定还是非稳定
#####二面(视频面 3.23 40min)
- 介绍项目
- 二叉树路径之和为n
- synchronized
- Handler和Looper(单个Looper和多个Handler)
- Handler内存泄露
- 四种引用
- 浏览器使用url整个过程
- volatile
- 单例模式(手写)
#####三面(视频面 3.23 50min)
- 介绍项目
- 即时视频用什么协议:TCP、UDP的区别
- 网络较差用什么协议
- Top K问题 0-100 1000w个小数(后面改成了两位小数)(很详细) -> 桶排序 复杂度
- 项目有没有做什么优化
- 类加载 双亲
在这里,大佬强调:GitHub和博客维护好很重要,demo随手写,随手删的话,面试官就看不到你的作品,很容易GG
推一下我的GitHub交友地址:https://github.com/Meng997998/AndroidJX,点下star一起来学习呗
另外,在我的请教(死缠烂打)下,我还挖来了大佬面试时整理好的真题库,45天突击后,拿到了offer
面试真题库
1. 自定义 View
2. 事件拦截分发
3. 解决过的一些性能问题,在项目中的实际运用
4. 性能优化工具
5. 性能优化 (讲讲你自己项目中做过的性能优化)
6. Http[s]请求慢的解决办法(DNS、携带数据、直接访问 IP)
7. 缓存自己如何实现(LRUCache 原理)
8. 图形图像相关:OpenGL ES 管线流程、EGL 的认识、Shader 相关
9. SurfaceView、TextureView、GLSurfaceView 区别及使用场景
10. 动画、差值器、估值器(Android中的View动画和属性动画 - 简书、Android 动画 介绍与使用)
11. MVC、MVP、MVVM
12. Handler、ThreadLocal、AsyncTask、IntentService 原理及应用
13. Gradle(Groovy 语法、Gradle 插件开发基础)
14. 热修复、插件化
15. 组件化架构思路
16. 系统打包流程
17. Android 有哪些存储数据的方式。
18. SharedPrefrence 源码和问题点;
19. sqlite 相关
20. 如何判断一个 APP 在前台还是后台?
21. 混合开发
详情解析块可以关注我,评论区留言私聊我