开发者社区> Android进阶开发> 正文

2020Android春招面试经历(已拿今日头条28Koffer)

简介: 今日头条 面试
+关注继续查看

一声叹息

从去年9月3号,到今年3月20号,耗时6个月多的找工作经历终于是画上圆满的句号了,近200个日日夜夜的酸甜苦辣想必裸辞的亲尝者都能体会得到,下面想来复盘或者说总结一下这段经历。但不管怎么总结,核心还是那一句话:一定要充分的准备!!!

简历准备阶段

大家都知道,学历就是个敲门砖,所以对于一些背景比较好的同学,我就不告诉你怎么写简历了😊自由发挥吧

1. 那么对于一些学历背景一般般的同学要怎么让自己的简历更有亮点呢?

建议先分为两种,第一种是在校期间没有什么实习经验的同学,那简历中可以着重突出自己在校期间做过跟岗位相关的项目经验,我参考过很多同学的简历里面只有过项目的名字,导致面试官很难去判断,所以大家写项目和实习经验的时候,可以参考一下star法则~

“STAR法则是情境(situation)、任务(task)、行动(action)、结果(result)四项的缩写。STAR法则是一种常常被面试官使用的工具,用来收集面试者与工作相关的具体信息和能力。”

对于应聘研发岗位的朋友,在描述自己的项目经验的时候建议详细的说明一下,比如自己用了什么语言,什么框架去实现blablabla,时刻要记得我们在求职第一步的时候别人只能通过这个来评估你的能力呀~~~

所以一定要突出自己的优点和能力!

2. 对于在校期间有过实习经验的朋友来说是稍微有优势一些的,那写自己的实习经验的时候其实要点也是跟刚刚讲的一样,要写出最能体现你的能力的项目,也是建议参考star的法则去写。

之前有一个朋友,学的后端开发,但是投递的是客户端的岗位,简历里写的项目经验也全都是后端的,面试官很难从他后端的经验里面衡量你能不能胜任客户端的这个岗位的呀!然后就没有然后啦!

我建议大家可以根据你要投递的岗位去跟着修改你的简历哦,像他这样的情况,面试官不会单靠他有这个意向转岗就可以的~

  1. 对于校招的同学来说,如果已经有拿到了别的公司的offer的,建议大家在自己的简历里标注一下~这样也有利于评估的通过率哦

初期准备阶段

刚开始一个月还能耐得住性子在家里老老实实的复习,一个知识点一个知识点的过。第二个月便开始着急了,觉得这样复习效率太低。于是草草把没有复习完的内容快速过了一遍,着急开始找前同事和猎头推简历,面试机会确实是来了,而且是一线互联网公司。结果可想而知都很不理想:支付宝的第一轮电话面试就败下阵来、vivo内推勉强冲到第二轮也没能通关成功。发现自身问题后于是停止了推简历,又老老实实的复习剩下的知识点,并做好复习笔记。虽然从失败中总结到了经验,但白白浪费了机会,得不偿失。

中期阶段

基础知识点梳理完后,这个时候主要是去熟悉源码了。阿里腾讯这些大厂面试必问源码分析,可以结合项目中用到的开源框架有针对性的阅读下源码,面试过程中一般会根据你在项目中用到的框架,询问你对这些框架的原理是否熟练掌握。

通用框架一般无外乎网络库、图片库、工具类、插件化或热更新库等。这些知识点应该平时多去积累和练习为好,此时只要稍加复习即可。如果不是特别熟悉的可以去参考别人总结比较好的文章对着源码梳理,一定要在自己脑中形成知识结构,基本的实现细节要陈述出来。

另外复习面试高频知识点,做针对性的突击训练了!

该阶段复习可以参考知识点列表:2019年鸿洋大神最新整理一线互联网公司Android中高级面试题总结(附答案解析)
,基本涵盖到安卓和Java的绝大部分的基础知识点了,后续阶段的复习也可以参考这里的知识点:2017-2020历年字节跳动Android面试真题解析

另外一个总结得不错的列表可以作为补充:2020最新Android大厂高频面试题解析大全(BAT TMD JD 小米)

后期阶段

有了上面两个阶段的准备后,前两轮的基础面试基本没什么问题了。如果目标岗位是资深开发或者架构师的话,一般还会问到更底层原理和更抽象的宏观层面问题。

底层原理方面:比如虚拟机的内存区域和gc流程、tcp的流量和拥塞控制、https建立连接的交互流程等,这里可以去找对应的技术文章熟悉了解。

宏观层面:一般是架构模式(MVC、MVP、MVVM)、开发模式(模块化、组件化、模块组件化)以及设计模式相关问题,要能熟练掌握到灵活运用的层度,并总结出它们之间的异同特点。
架构模式学习手册

另一大块就是算法了,某些一线公司比较喜欢考,比如今日头条在面试邮件中就明确指明要考算法。因此要对标你的目标公司是不是要考来进行复习。具体考哪些内容,以我面试的那些历程来看,基本都没超出《剑指offer》那六十几道题的范围(可能有对应题的变形),因此花一个礼拜左右的时间把那六十几道题弄懂并自己动手实现一遍基本ok,当然一些基础算法还要自己认真去总结学习,比如排序、二分查找、链表和树的基本操作等。

面试经历

主要是根据回忆总结的(会有遗漏点)。

1. 腾讯(QQ音乐)

腾讯面试涉及到的范围也很广,甚至问到了C++、Kotlin +Flutter ,也具有一定挑战性的,以下包括腾讯腾讯安卓客户端三面,最终拿到了测开岗位offer,腾讯面试过程中的感觉就是很多我不太熟悉的知识点都被问到了,甚至是不知道的知识点,但整体面试官给人的体验还不错,一般会提前打电话沟通面试时间。

C++:class与struct区别

项目:介绍项目,有什么难点;

Java:HashMap;ArrayList,LinkedList用法有什么要注意的;注解介绍下;泛型中类型擦除是什么

算法&数据结构:字符串中出现频率中位数;最长公共子串问题LCS;线段树;B+树;快排及时间复杂度多少;七大排序;二叉树原理;红黑树

Android:OkHttp,OkHttp使用需要注意什么;RxJava介绍下;Activity四种启动模式;一个APP怎么退出所有Activity,如果有第三方SDK Activity,又怎么退出;EventBus原理;app卡顿;

Kotlin :协程

Flutter :生命周期

2. 支付宝(海外版)
仍是电话面的,还是没有找到感觉,回答不在状态。最后猎头反馈的本次面评是:过往项目功能较简单、某些技术细节掌握不到位。算是浪费了机会。

3. 今日头条

是所有参加的面试里比较专业的面试体验吧,面试官体现了很好的技术素养。总共参加了3轮视频面试(技术面全部面完),现已入职上海字节跳动。当然这里也花了很长时间准备(5个礼拜左右),主要是因为要考算法,从头头复习了算法,《剑指Offer》+ 《LeetCode》也是刷的我很痛苦, 还把所有知识点重头捋了一遍。

头条一面:
tcp三次握手 4次挥手
aidl 对象的在两个进程间通信
leakcanery 为什么不能100%检测内存泄漏
包内广播和包间广播
handler 机制
mvvm
okHttp 有哪些拦截器,平时项目中如何使用
如何自己设计一个内存检测工具检测Activity和fragment内存泄漏
数据库用到哪些详细说说
Java基础题。。。。。
乐观锁悲观锁相关
算法题:
二叉树深度
。。。

头条二面:
说一下你最熟悉的项目,
launcher3 上面的小点事怎么回事
remotview 是如何加载在launcher 上面的
jobsheduler的原理
数据库为什么使用greendao
fanal关键字在什么情况下设置内容
子类和父类静态成员 静态方法 和父亲静态成员和构造方法执行顺序
prebuffer 有使用过吗!原理是什么
retoryfit相关直接说源码
handler 相关直接源码
sparryArray和HashMap 相关为什么性能强
插件化相关
图片加载库相关直接源码

头条三面:
谈谈HashMap(为什么不适用基础数据类型、添加的时候需要注意什么、添加的key有什么特殊性)
重写equals方法
数据库范式
扑克牌三带二(算一算出现的概率)
为什么 Android 要采用 Binder 作为 IPC 机制
工作项目难点,如何克服。
反问环节

头条HR面:
自我介绍
未来的职业规划
说一下自己平时的学习方法
你认为这些学习方法里最有效的是哪一种?
评价一下之前的面试官,或者说之前的面试官有没有给你留下印象最深刻的一点
为什么想要来今日头条?
你平时都用字节的哪些产品?有什么好的建议吗?
期望薪资
你有没有什么想问的?

总结

其实客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
Android大厂面试真题全套解析

2017-2020字节跳动Android面试真题解析PDF
然而Android架构学习进阶是一条漫长而艰苦的道路,不能靠一时激情,更不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!

上面分享的腾讯、头条、阿里、美团、字节跳动等公司2020年的面试真题解析大全,小编还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,下面只是以图片的形式给大家展示一部分。

Android架构学习开发笔记

Android学习PDF+学习视频+面试文档+知识点笔记

【Android思维脑图(技能树)】

知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。

【Android高级架构视频学习资源】

Android部分精讲视频领取学习后更加是如虎添翼!进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!

【Android进阶学习视频】、【全套Android面试秘籍】下载地址!https://shimo.im/docs/w6cyqyXqKRPDGcrr

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
18415 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
12596 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
32315 0
使用NAT网关轻松为单台云服务器设置多个公网IP
在应用中,有时会遇到用户询问如何使单台云服务器具备多个公网IP的问题。 具体如何操作呢,有了NAT网关这个也不是难题。
34093 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
13975 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
8261 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
11529 0
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
11558 0
+关注
Android进阶开发
从事Android开发6年,是一名为自己而活的码农!
125
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载