乐趣区

关于android:Android面试4面字节跳动拿到22-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 用过哪些
  • 最近看什么书?
  • 职业规划是什么?
  • 能承受在北京工作?
  • 算法题目:排序二叉树转有序双链表,要求在原来的树节点根底上减少。

字节跳动三面

这个面试官应该是一个总监级别的,谈话十分的硬气,必定是一个资深大佬,一共面了 40 多分钟。惯例的面试根底都没问,纯怼我的项目和算法了。

  • 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

字节跳动四面

HR 面,大概 35 分钟,次要是问集体职业规划、薪资待遇,以及对字节跳动的期许等等 ….

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 路线、面试题汇合等资源继续更新中 …

退出移动版