2020 应届毕业生,Android 春招总结,已入职小米,阿里牛逼
前言
先说说自己的基本情况吧,湖南某双非一本本科,学的是移动开发, 有一两个独立完成的个人项目/demo(Android),没有获奖经历,没有实习经历,计算机基础的深度一般,但广度凑合(就是平常上课都有听过,但都不认真),很少刷题。
春招开始的时候,投了十几份简历也没有回应,十分的懊恼,但是我沉下心来,用了半个月的时间复习和准备,终于在半个月后拿到了小米的 offer。
今天就分享一下我在春招期间都做了什么和我的面经情况。
准备
在春招刚开始投了十几份简历没回应后,对我自身进行一个分析,寻找最适合我的准备方法。
自我分析
优势
个人项目均是自己认真做完的,可以仔细聊聊,在项目上可以拓展各种知识点。
在实验室付出了很多心血,对整套架构了如指掌,可以仔细聊聊实验室的经历和收获。
劣势
学历不够,非 211.985 本科或研究生。
没有实习经历,无法了解到真实的业务场景。
刷题不够,手撕算法能力不够强。
计算机基础深度不足,容易被问死。
项目难度不足,没有太多亮点。
缺少重量级奖项(acm 之类的)。
分析
由于劣势 1,2,6,我的简历很难写的出彩,也很难走内推通道。
由于劣势 3,4,5,在面试时缺少亮点和深度,无法让面试官留下太深的印象。
由于优势 1,2,我在聊个人经历时有很多可以说的内容,可以充分展现我的业务能力和开发基础
需要做的事
提高刷题量,增强算法能力。
在 Android 方面加深基础,多看面经。
持续的修改简历,突出亮点。
增加获奖经历。
复习科班基础。
过程
为了提高算法能力,我刷完《剑指 offer》,了解面试官出题的套路;还在 LeetCode 上 AC 了 20 多道 Hard 难度的题,在牛客上 AC20 多道低通过率编程题,加强手撕代码的能力。
为了提高计算机基础,我复习了以下科目
计算机网络
操作系统
计算机组成原理
编译原理
在网络上搜集相关面经,主要是 BAT TMD NJ 的 Android 岗位的面经,在看面经的时候我会尝试回答每个问题,看看自身掌握如何,不会的及时找到答案并弄懂。
需要资料的朋友可以私信我【资料】或者或者**[【点这里】](
)免费领取**
由于对内推不抱希望,我在牛客网上刷大量的笔试题。希望通过提高笔试能力,能尽量拿到参加面试的机会。
面经
均只有技术面
字节跳动
一面(30misn)
handler 原理
怎么解决 handler 内存泄露
四大引用
接口和抽象类区别
对 MVP 的理解
retrofit 源码
java 面向对象三大特性
java 异常机制
算法:反转链表
二面 (40misn)
asynctask 原理
ANR 原因
ANR 排查
怎么解决加载大图 OOM 的问题
https 过程,对称加密,非对称加密
TCP 和 UDP 区别
手撕代码:单例模式 DCL,面试官问我有没有更优的,
腾讯
一面 (1h)
自我介绍
笔试题 1:删除无序链表中的重复结点(能否优化)
笔试题 2:先说一下二叉树的有哪些遍历方法。写一个二叉树前序遍历的非递归形式。
讲一下 Java 的内存。
创建一个字符串对象,这个对象分配在哪里?
String str = “123” + “456”;会创建几个对象。
问了操作系统的问题,没学过,所以也忘了问了什么。
数据存储有学过吗?数据库和文件保存有什么区别?
Activity 有哪些启动模式?
有什么要问的?
二面 (1h)
上一轮面试做了哪 2 道面试题?
会哪些编程语言?
想做哪个方向?为什么?Android
对 Android 比较感兴趣,都学了些什么?我答了活动的启动模式、Handler。
ListView 源代码有看过吗?没看过。
想一下 ListView 应该是怎么实现的?链表?
ListView 滑动页面如何实现页面的复用?队列?
给你 2 个线程,如何产生死锁?为什么会产生死锁?
外存有一定量的数据,需要读取到内存中处理,但是内存的大小是不知道的,要求如何能够读取尽量少的次数,才能处理完全部的数据?
唯品会(一面就挂了)
一面:(1h)
udp 和 tcp 的区别
能介绍一下 Android 的四大组件吗?
二分法是怎么样的
线程池(词)是什么?如何打印两个线程同时完成的消息?
你了解 android 的 View
你了解有哪些动画吗?
ListView 和 RecycleView 的区别?8. udp 和 tcp 的区别?http 是基于 tcp 还是 udp9. 项目怎么实现刷新实时天气情况这个功能的 10. 项目怎么实现显示本地 mp3 文件 11. http 和 https 的区别吗?你的项目你是用 http 还是 https?12. 你的学习经历是怎么样的?13. 如果遇到你和同事出现了矛盾你会怎么办 14. 如果经理提出的需求分析你很难实现你该怎么办?15. 你学习过哪一些源代码 16. 如果 debug 出现问题你会如何去发现问题 17. 有没有试过抓包?18. java 多线程是怎么实现的?
斗鱼
一面(40misn)
线程同步(五个线程如何顺序执行)
评论