Android面试(4面字节跳动拿到2-2|Android面试:4面字节跳动拿到2-2 Offer)
前言
当你开始开始去跳槽面试的时候,明明只是一份15K的工作,却问你会不会热修复,懂不懂性能优化,火箭造得让你猝及不防,结果就是凉凉;现如今市场,热修复、性能优化、NDK、APP开发、架构、源码等可以说是现在高级Android开发求职的必备技能。
本人经常隔段时间就偷偷投点简历,请假出去面试几次,目的不是想跳槽,主要是为了看看市场上的技术流行趋势,顺便检验一下自己的水平,当然,如果面到了心仪的公司或者大厂,那不是更好嘛,哈哈哈!
前段时间收到了字节跳动的面试,虽然有点小震惊,但还是用平常心对待了。结果一不小心,面试的时候就吊打了面试官。
前后一个半小时的面试过程全程没卡壳,项目和算法全部搞定,甚至聊到了面试官的盲点…
?结果……当然是顺利的接到了字节跳动的Offer,定级为2-2资深研发人员。
文章图片
个人经历
其实我有好长一段时间没有正规的面试过了,大约5年的时间里面,我没有正规地接受过面试。
所以在准备投字节跳动之前,我投了几个公司做了一下热身活动。记住,这个时候其实不需要有啥心理包袱。因为本身候选人面试成功的可能性比较低,一个合适的可以面试的人选他们也很乐意看看,而且万一你确实想换工作,但是心仪的公司面不上,而热身活动的公司拿到了offer,你也可以考虑考虑去看下。并且这个时候你没有任何的心理包袱,因为反正你也就是来面试看看的,所以面试时候的发挥可能也会更好点,因此说不定最终拿的offer会比最后想去的那家更好呢?
面试准备
老实说,我自己平常没事就会看一些面试题,所以我都是直接去面的。
建议大家如果准备面试的话,需要做以下准备:背题:看一看最近的面经文,了解现在公司都在面什么类型的题,准备一些常见题,开背吧!如果一些基础的开发问题都不会那问题就有点小大了。
算法:做一些算法题,leetcode 上面的一二三星就够了,前端算法很简单,基本都是初中数学的难度吧。
项目:项目回顾,把你做的项目从技术架构到源码都要做到足够了解,至少面试的时候不要被面试官问住了。并且要体现出你在工作中的作用,体现出自驱性。(大公司都很看重自驱性)。
亮点:准备亮点,回答问题的时候不用全部回答上来,但是在面试的过程中一定要有亮点(不然你就会得到反馈,面试官说你还行,但是没有过~) 我一般会准备几个点,每个点都保证可以睡上半小时。另外一定要了解的很深入,并且能够用自己的话流畅的表达出来!!
内推:最好找人内推,成功率会提高一些。
练手:先找几家不太想去的公司(规模差不多)练练手,如果第一次面试就去心仪的公司面试,淘汰率会非常高。
心态:心态很重要,面试不过很正常,不证明你不优秀,只是不适合,总结面试经验,为下一次做准备。
如何回答问题?
怎么把自己会的问题说好,这个很关键。
逻辑清晰 一定要逻辑清晰,不然即使你知道这个问题的答案,面试官也不会满意,如果你逻辑清晰,即使这个答案不会,面试官也会给你加分。
独特理解 现在的面试题大同小异,那么如何体现出你的优势就很重要。结合业务以及你自身的知识储备来讲。
深入思考 对每个问题一定要有深入的思考,不然就很难进入大公司了,深度上要有一个拔高才能在面试中获得好的成绩。
流畅表达 面试就是一个表达的过程,一些问题心里明白不行,还要流畅的表述出来,基本上如果面试官觉得你表达的很流畅,当你讲到一半就不会再让你说下去了,证明已经通过了。
刷题当然也是最重要的,毕竟我是有好几年没有过正规面试的经历了,于是问我在阿里的同学要来了一份他们公司P8整理的一系列大厂面试题,刷到天昏地暗,如今我也已经入职了字节跳动,这些面试题对于我来说也没什么太大的用处,所以在这里无偿的分享给大家。
字节跳动面试经历
字节跳动一面
- 自我介绍
- 介绍下Android的mvc/mvp/mvvm
- view的事件分发机制
- viewGroup 怎么知道view有没有消费事件
- 写一个单例模式(解释单例模式中的sync,双锁,volidate)
- 算法题目:
有A和B两个有序数组(数组元素不重复),给出sum,请找到A和B中所有相加和为sum的序列对(面头条遇到的)
A:[1,4,5]
B:[3,4,6]
sum=8
output 1,1,2,0 => because A[1]+B[1]=8 /A[2]+B[0]=8 - 内存泄漏有哪些?怎么排查
之后就问了我最近看了哪本书,学到了什么,最近还在学的什么技术呢?问了我职业规划,兴趣爱好,还说了说公司的语言选型,我后来问了下对于我的面试表现评价,人家不方便说,又问了新人培养等问题。
字节跳动二面
- 自我介绍
- 你遇到最难的问题是什么
- android的handler机制
- android的anr机制
- android冷启动优化
- android弱网优化
- android 视频相关有了解么?
- android长图片加载怎么实现
- gradle用过哪些
- 最近看什么书?
- 职业规划是什么?
- 能接受在北京工作?
- 算法题目:排序二叉树转有序双链表,要求在原来的树节点基础上增加。
- volite的关键字,干了什么(什么叫指令重排)
- 生产者消费者(非阻塞式)
- 怎样获取当前线程是否是主线程
- 怎样检测函数执行是否卡顿
- 常用的对称加密算法,有什么同
- view分发反向制约的方法
- 两个线程用不同的对象,怎么养
- 乐观锁使用
- hashmap底层原理
- arraylist底层原理
- webview如何做资源缓存
- hashmap扩容
- 一张图片100*100的图片在内存中的大小
- 项目里面的难点(如何解决,解决方案是什么)
- 一个app发布一个版本后,发现变卡了,你如何复现?如何得知某个地方变卡,如何得知用户在某行代码变卡
- android 动画机制有哪些?
- lottie的原理
- 直播中的动画要怎么做?要做成动态的,比如礼物是可以配置的?
- 算法题:找出数组中的k数。k数的定义:比位置位于这个数前面的数字都大,且比位置位于这个数后面的数字都小的数字(数组首尾的数字不用管)(面头条遇到的)
[4,1,3,2,7,9,8,10,12]
此数组中的k数为7和10
Android核心知识点
面试成功其实是必然的,因为我做足了充分的准备工作,包括刷题啊,看一些Android核心的知识点,看一些面试的博客吸取大家面试的一些经验。
下面这份PDF是我翻阅了差不多3个月左右一些Android大博主的博客从他们那里取其精华去其糟泊所整理出来的一些Android的核心知识点,全部都是精华中的精华,我能面试到现在2-2资深开发人员跟我整理的这本Android核心知识点有密不可分的关系,在这里本着共赢的心态分享给各位朋友。
不管是Android基础还是Java基础以及常见的数据结构,这些是无原则地必须要熟练掌握的,尤其是非计算机专业的同学,面试官一上来肯定是问你基础,要是基础表现不好很容易被扣上基础不扎实的帽子,常见的就那些,只要你平时认真思考过基本上面试是没太大问题的。
最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上我搜集整理的2019-2020BAT 面试真题解析,我把大厂面试中常被问到的技术点整理成了PDF,包知识脉络 + 诸多细节。
节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
《360全网最全Android开发笔记》
文章图片
《379页Android开发面试宝典》历时半年,我们整理了这份市面上最全面的安卓面试题解析大全
包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。
如何使用它?
1.可以通过目录索引直接翻看需要的知识点,查漏补缺。
2.五角星数表示面试问到的频率,代表重要推荐指数
文章图片
《507页Android开发相关源码解析》只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
【Android面试(4面字节跳动拿到2-2|Android面试:4面字节跳动拿到2-2 Offer)】
文章图片
以上资料是免费分享给大家的,【点击这里】免费领取!里面包含不同方向的自学Android路线、面试题集合等资源持续更新中...
推荐阅读
- Android开发程序员跳槽到底要学习哪些?
- 测试平台系列(91)|测试平台系列(91) 编写oss管理页面
- 简单聊一聊Javascript中的模块化
- PWA|PWA 实践/应用(Google Workbox)
- springboot如何获取yml里面的属性值
- 【面经】数据库面试突击
- 面试官(Redis中哈希数据类型的内部实现方式是什么())
- ⑥(数据结构篇)、《史上最全iOS八股文面试题》2022年|⑥(数据结构篇)、《史上最全iOS八股文面试题》2022年,金三银四我为你准备了,iOS《1000条》面试题(包含
- 【面经】Java面试突击
- 从面向对象解读设计思想