
置顶科普
年份是毕业年份,2021是指2021年毕业,不是2021年面试
鲂的面经整理目录(已完结)
1. 美团金融|安卓客户端|面经|offer|2021届秋招|
2. 拼多多|客户端开发|面经|offer|2021届秋招|
3. 网易云音乐|安卓客户端|面经|offer|2021届秋招|
4. 阿里巴巴|客户端开发|面经|2021届秋招|
5. 花旗银行|软件工程师|面经|offer|2021届秋招|
6. 字节跳动|客户端开发|面经|2021届秋招|
7. 叠纸游戏|客户端开发|面经|2021届秋招|
8. 腾讯|客户端开发|面经|2021届秋招|
9. 360|安卓客户端|面经|offer|2021届秋招|
10. 作业帮|IOS客户端|面经|2021届秋招|
11. 滴滴|安卓客户端|面经|2021届秋招|
12. 百度|IOS客户端|面经|2021届秋招|
13. 快手|客户端开发|面经|2021届秋招|
14. 顺丰科技|安卓客户端|面经|offer|2021届秋招|
鲂的内推
1. 内推+校招秋招|美团金融服务平台|多项岗位|北京+上海
鲂的2021秋招经验总结(不定时更新)
1. 分享|2021届毕业生秋招经验总结1-岗位类别介绍
2. 分享|2021届毕业生秋招经验总结2-如何选择offer
鲂的2021秋招算法总结目录(已完结)
1. 分享|2021秋招算法总结1-DFS篇
2. 分享|2021秋招算法总结2-BFS篇
3. 分享|2021秋招算法总结3-链表篇
4. 分享|2021秋招算法总结4-二叉树篇
5. 分享|2021秋招算法总结5-排序算法篇
6. 分享|2021秋招算法总结6-字符串篇
- 分享|2021秋招算法总结7-双指针篇
- 分享|2021秋招算法总结8-哈希篇
- 分享|2021秋招算法总结9-位运算
- 分享|2021秋招算法总结10-数组篇
- 分享|2021秋招算法总结11-动规篇
- 分享|2021秋招算法总结12-栈篇
申明
本序列文章均按本人情况记实撰写,不保证对其他人是否有用。本人疑似被有心团队盯上(只踩不敢发布有用评论)。所以特此申明:爱看就看,不看就关掉链接,我说的一些实话确实会伤害一些幼小和脆弱的心灵,建议关链接保平安。
本人情况
- 自我认知:非天赋型,比较擅长归纳整理和交流讨论。
- 学历:211 本(交叉学科),985 通信硕(保)
- 竞赛:非计算机相关赛事(ACM之类的没参加过),都是一些团队比赛,名次高的相关度不高,相关度高的名次低。
- 论文和专利:非相关方向
- 实习:只有一段,时间在大四保研后。研二下学期因为在赶小论文,所以没有参加暑期实习,直接开始找工作。
- 项目:类型较多,相关经验的略不足。
岗位选择和秋招概述
综合自己的实际情况、兴趣方向和能力范围,从2019年底就明确想找客户端的工作了,但是真正开始大规模投递公司是在 2020.7.16(小论文截稿日)后。大部分有给面试机会的公司都集中在 7-9 月份面试。本人知足常乐,从 9 月底开始就处于收到意向书后等正式 offer 的咸鱼状态了。个人体会:如果选岗比较明确且适合自己,学习路线就会比较明确,可以明显看到自己的不足和成长。
面试准备
- 自我介绍
- 简历上的项目复盘和查新
- 算法学习与归纳
- 基础知识学习与归纳(计算机网络、操作系统、数据库、JAVA 基础和安卓基础)
一面(55min)
常规问题
- 自我介绍
- 为什么选择安卓客户端的岗位
- 安卓学习路线
- 编程相关的书籍还看了哪些
- 有没有写一些博客和开源项目
- 学习安卓的时间
- 《第一行代码》看了多少
- 能提前去实习么
基础知识问题
- (Java)String、StringBuffer 和 StringBuilder 的区别
思路:从可变性和安全性的角度入手分析,如果使用的比较熟练的,还可以从用法入手分析。
- (Java)String 的内部实现
- (Java)String 对象主要存储在哪块区域(常量池)
- (Java)重载和重写的区别
口诀:重写(两同、两小、一大),重载(方法名一致,形参列表不同)
- (Java)HashMap 和 HashSet 的区别
思路:可以从Map和Set的区别、HashMap和HashSet的方法与底层原理入手分析。
- (Java)写一下 HashSet 的实现
思路:可以用HashMap的key作为HashSet的元素(不可重复性),同时令HashMap的value为同一个Object
建议:像这种涉及到源码的题目,如果面试时候不记得源码,可以试着先找规律,一步步推理,面试官会给思考时间的。同时一定要记得多跟面试官交流,问清楚需求。
- (JVM)运行时数据区
- (JVM)创建对象的过程
- (JVM)判断一个对象是否被回收
- (JVM)新生代和老年代用的垃圾回收策略
- (安卓)activity、window 和 view 之间的关系
- (操作系统)LRU 的实现
LRU缓存机制(力扣146题)
推荐学习链接:
方法1:哈希表+双向链表
方法2:源于LinkedHashMap源码
- (计网)HTTP的缓存机制
算法题
- 查找单向链表的中间结点
力扣876题
思路:快慢指针法,循环中快指针走两步,慢指针走一步,在循环结束时,慢指针恰好在中间位置。
- 链表的倒数第 k 个节点
力扣剑指Offer 22题
思路:快指针先走 k 步,然后快慢指针同步走,最后慢指针恰好在倒数第 k 个节点的位置。
二面(60min)
常规问题
- 自我介绍
- 一些关于项目的问题,建议项目问题回答遵循 STAR 法则【STAR法则是情境(situation)、目标(target)、行动(action)、结果(result)】。
- 开发项目时候遇到哪些比较困难的问题,怎么解决的
- 个人职业生涯规划是什么样的
- 你希望在什么样的团队里面
基础知识问题
- (Java)HashMap、HashTable 和 ConcurrentHashMap 的区别
- (安卓)布局文件的区别(各种 Layout)
- (安卓)内存不足时候使用的字段(不太了解这方面的知识,强行扯了两句以后商量换题)
- (安卓)有没有遇到过一些安卓 crash 崩溃的情况,如何解决的
- (安卓)你遇到的内存泄露的情况
- (安卓)安卓点九图的使用(没用过,商量换题)
- (Java)强引用、弱引用、软引用和虚引用的区别(我还加上了一个终结器引用的解释)
- (操作系统)进程和线程的区别
- (操作系统)线程的生命周期
- (操作系统)sleep和wait的区别
- (操作系统)死锁产生的原因
- (安卓)ListView的优化措施
算法
最大子序和
力扣53题
思路:很简单的 DP 问题
智力题
倒水问题:一个装了 10L 水的桶,一个 7L 的空桶,一个 3L 的空桶,怎样变成 2 个 5L
三面(75min)
常规问题
- 除了 Java 以外,还用了什么语言(回答了 c++ 和 python)
- 项目分工
- 想选择的城市,自己的家乡
- 职业生涯规划
基础知识问题
- (语言类)c++ 和 java 在内存管理方面的区别
- (语言类)c++ 有垃圾回收么
- (JVM)对 gc(垃圾回收)的理解
- (JVM)你觉得可达性分析用什么数据结构比较好(垃圾回收的延伸知识)
- (JVM)管理内存的策略和机制有哪些
- (JVM)垃圾回收算法
- (语言类)内存泄露的场景
- (语言类)c++ 中的对象类,对象内部的类是如何存储的,内部元素存储在哪些空间里面
- (语言类)调用函数的实现机制
- (计网)网络传输都做了哪些事
思路:参考《浏览器中输入域名(url)后发生了什么》问题进行解答
- (计网)如何保障网络传输的数据安全
- (计网)AES 的加密性能会高于RSA么
- (计网)RSA 的实现原理
- (计网)MD5 加密以后能解密么
- (计网)网络传输中,你只把数据加密了,就能保证网络的安全么?有没有其他的隐患
- (计网)有没有了解过如何规避 DNS 劫持
- (计网)洪泛攻击的规避方法
- (编程习惯)如何把代码设计的更好,更健壮
- (编程习惯)常用的设计原则和设计模式
编程习惯类问题,需要谨慎回答一些自己知道的,因为会顺着你的回答再问一些详细的内容,答不上来就会很尴尬。
算法
- 滑动窗口的最大值
力扣 239 题
不同点是返回值为List,要注意边界条件
- 顺时针打印矩阵
力扣剑指 29 题
- 最小路径和
力扣 64 题
不给样例,需要自己想象。
美团三面时候看到第二题觉得很熟悉,口误说了下:“这不是很简单么”。然后被面试官问了下这题是不是做过。关于“面试中遇到刷过的题,是否应该坦白”的问题,weiwei哥曾经发过,以下是我对这个问题的看法:鲂的分情况讨论
HR面(17min)
- 前面的面试结束以后,对美团的基本情况有一定了解了么
- 意向城市是上海的原因(简历和最后的业务不在同城而引发的问题)
- 实习经历盘问,主要针对简历上的
- 实习以后的收获
- 选择岗位的偏向
- 觉得自己经历过最难的项目是哪个
- 你还有其他 offer 么
- 你手上这些 offer,你会怎么选
- 反问环节:进去以后的部门和岗位,需要自己做选择么
- 反问环节:如果有意向书的话,大概什么时候发放
结束语
面试需要实力与运气兼备。如果面试中遇到完全不会的题目,建议直接说不会,面试官会换下一题。如果面试中遇到曾经用过但是记得不太清楚的,先把自己知道的给说出来,然后不断和面试官交流,明晰需求,实在不行的话就直接说自己忘了吧。个人建议:与其在不太熟悉的领域浪费彼此的时间,不如跟面试官沟通下换题。