前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >45天拿下字节跳动Android研发岗offer,竟然有个面试真题库,内幕首次公开!

45天拿下字节跳动Android研发岗offer,竟然有个面试真题库,内幕首次公开!

原创
作者头像
Android技术干货分享
修改2020-11-19 18:15:03
1.2K0
修改2020-11-19 18:15:03
举报
文章被收录于专栏:Android技术分享Android技术分享

多天前,我还瘫在床上,怀疑自己废了,怎么还没有去工作?

然后在某个下午,我欢乐地在一个群里进行技术交流(其实也就是划水),突然有个大佬发出个字节跳动的内推。

【字节跳动】内推 地点:北京 学历:本科以上,计算机相关专业 优势:福利待遇好,业务线目前已经单独盈利,千万级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

另外,在我的请教(死缠烂打)下,我还挖来了大佬面试时整理好的真题库,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. 混合开发 .........

面试前我做的准备工作(大厂收割秘籍)

1.定制自己的简历(对标BATJ)

无论是什么行业,简历都是敲门砖,对于程序员来说,更应该着重准备,甚至要做到逐字推敲。关于简历,我个人有以下两点建议:

①尽可能突出自己的优势

一定要让看到你简历的人一眼就看到你自己所具备的优势,要学会突出重点,如你在上一家公司做出的贡献,就要写在显眼的位置进行突出,用颜色加深再好不过。如果你的优势是学历,那么学历就要放在第一页,因为HR在筛选简历时,一份简历往往只看那么几秒钟,你需要做到的就是让HR一眼看中你的简历。

②简

简历简历,之所以称为简历,就是需要把自己的个人信息和内容化繁为简,但是很多人都做不到这一点。我身边有一些朋友,写自己简历时,长篇大论,恨不得写出一篇800字作文出来,如果说你的简历长达6-7页,并不会给对方你有丰富经验的感觉,反而会让人一下子抓住不住重点。

另外,简历不能写成流水账,技术简历一般不超过3页,主要信息就包括个人信息(联系方式,学历等),专业技能,工作经历,项目经验等几个部分就好了,尽可能用精炼的语言描述,一个字能讲清楚的事,千万不要用两个字。

③描述自己做到了什么,而不是做了什么

很多程序员会在自己的项目或是技术栈里这样描述:在某项目,我负责xxxx,如重构,如优化。但实际上,面试官想要看到的是你在项目中,重构和优化带来了什么样的好处和效果,如果说性能提升了,那么提升的数据和情况是如何的,要一一描述出来,所以重点应该是“将项目做到了什么样子,做成了什么事”。

以上3点,则是我对自己简历的要求。说了这么多,简历到底要怎么准备,怎么制定,可能很多人还是摸不着头脑,我手上有一套标准的程序员简历模板,如果你有需要,可以分享给你。

2.梳理知识,提升储备

自己的知识准备得怎么样,这直接决定了你能否顺利通过一面和二面,所以在面试前来一个知识梳理,看需不需要提升自己的知识储备是很有必要的。

关于知识梳理,这里再分享一下我面试这段时间的复习路线:(以下体系的复习资料是我从各路大佬收集整理好的)

  • 架构师筑基必备技能:深入Java泛型+注解深入浅出+并发编程+数据传输与序列化+Java虚拟机原理+反射与类加载+动态代理+高效IO
  • Android高级UI与FrameWork源码:高级UI晋升+Framework内核解析+Android组件内核+数据持久化
  • 360°全方面性能调优:设计思想与代码质量优化+程序性能优化+开发效率优化
  • 解读开源框架设计思想:热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+Android架构组件Jetpack
  • NDK模块开发:NDK基础知识体系+底层图片处理+音视频开发
  • 微信小程序:小程序介绍+UI开发+API操作+微信对接
  • Hybrid 开发与Flutter:Html5项目实战+Flutter进阶

知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。

最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2019-2020BAT 面试真题解析,我把大厂面试中常被问到的技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。

还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

3.项目复盘

实际上,面试的一二轮所问到的技术问题,很多都是围绕着你的项目展开,因此在面试前最后要做好的一件事情就是项目复盘。关于项目复盘,我个人的思路如下,可供参考:

  • 你在这个项目中承担了什么样的角色?
  • 这个项目的背景是什么,如果是技术项目,为什么要做?
  • 有哪些技术难点,是怎么解决的,是否还有更好的方案?
  • 你认为项目中是否有可以改进的点?
  • 这个项目解决了什么问题,最好用数据说话,这个数据又是怎么得出来的?

提前把思路捋一捋,上面这些问题好好思考或准备一下,做到心中有谱以后,自然能够面试官聊得融洽,保持一个好的心态,通过的几率就会更大一些。

以上内容均放在了开源项目:github 中已收录,里面包含不同方向的自学Android路线、面试题集合/面经、及系列技术文章等,资源持续更新中...

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一面 (视频面 3.23 50min)
  • 二面(视频面 3.23 40min)
  • 三面(视频面 3.23 50min)
  • 面试前我做的准备工作(大厂收割秘籍)
    • 1.定制自己的简历(对标BATJ)
      • 2.梳理知识,提升储备
      相关产品与服务
      云开发 CloudBase
      云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档