目录
1.阿里巴巴Android面经
1.1一面---1Hour15Min
1.2 二面---50Min
1.3 三面---20Min
1.4 四面---30Min
1.5 五面HR面---20Min
2.字节跳动(今日头条)Android面经
2.1 一面---1Hour
2.2 二面---50Min
2.3 三面---50Min
随着学校三方的寄出,这次的秋招也算是正式结束了,最后去了阿里巴巴对于我来说也是很满意了。
我本身就是一个普通211的硕士,专业是机械工程,在研一期间考虑到专业的就业问题毅然决然决定自学编程,但是本科到研一期间唯一的编程基础就是C语音和单片机开发,困难之路重重,幸运的是在这个过程得到了很多朋友的帮助与指导并且自己也算比较勤奋,最终拿到了包括阿里巴巴、头条、网易、爱奇艺、携程(实习转正)、VIVO以及华为的Offer,也算是跨出了转行的第一步吧!
在这儿我准备把这几家的面经给大家分享一下,也是感谢CSDN的平台让我获益良多。
本篇分为上中下三篇文章:
上篇:阿里巴巴与今日头条
中篇:网易与爱奇艺
下篇:华为与VIVO以及自己的转行心得
我总共参与了五轮面试,其中四轮技术面试,一轮HR面试
1. 问了很多自己实习项目的问题,包括实习期间做了什么,遇到的难点,怎么克服的?
我实习的时候跟leader一起解决过一个内存泄露的问题,大家如果实习的时候有自己的亮点不妨多准备一下,深挖一下!
2. 还有一些我参加的比赛做的项目的问题,包括项目主要担当什么角色?作了什么?最令你难忘或者收获最大的是什么?(项目和实习聊了很多,问的很深,一面二面就项目估计问了有1个多小时)
因为我个人是转专业的,所以比赛时候做过一些App和一些AI的项目,这些如果大家有的话一定要好好准备
3. https的连接过程简单说一下,数字证书是什么?他的用处?
4.死锁是什么?发生的条件?如何尽可能避免。
5. HashMap说一下?get流程?线程安全吗?如何选择线程安全的容器?
6. Java的多态与实现
7. GC算法?老年代和新生代使用了什么算法?
8. Java你知道的实现线程安全的方式,每一种方式的特点
9. 说说Android中的Context是什么?哪些实现?这些实现的区别?
10.View的事件分发机制
11.View如何渲染到屏幕上(问的很深,甚至到了硬件驱动层-感谢我的老本行)
一面主要是实习项目和比赛项目问了很多,都占了有40min,然后就是上面的一些基础或者扩展知识把。
1. 一个类的实例从new开始的过程
2. synchronized的锁优化
3. Android7.0,8.0,9.0有哪些代表性的更新
4. 点击一个App图标的启动过程
5. 你有没有用过什么开源框架?他的源码或者设计模式了解吗?
6. 缓存有了解过吗?让你自己实现你会怎么实现?
7. Handler简单说一下?让你自己说的话你认为哪些点不容易意识到,或者说哪些地方比较绕一点在你看源码的过程中
8.如何体现你的自学能力(我是机械跨专业的,把我自己的历程说出来其实已经体现了)
9. 平时如何自学(视频,博客,论坛,Google,Github...)
二面的话我感觉问的问题就比较开放了,但是也是必须准备的一些问题,二面结束之后他们就认为我表现的还可以,让我好好准备下面的面试。
这是我经历的最短的一次面试,只问了一些比较泛泛的问题
1. 你用过混合开发的框架吗?有类似的项目经验吗?
2. 数据库接触过吗?
3. 你感觉你自己的Android水平如何?
4.你实习时候遇到最困难的问题是什么?
四面是去现场面的(我一直以为是电话面试到底的),全程问的实习做的东西
1. 你实习做了什么?你有深入了解过你实习做的XXX模块吗?他的源码看过吗?
2.实习时候你也做过底层的一些项目吗?还是只停留在业务代码(实话实说没有...)
不知道为啥一直问的实习东西,感觉是在评估我的实习项目的深度,但是两个月的暑期实习真的不可能接触啥底层框架啊,我只是说了一些我自己看公司源代码了解的一些架构。
阿里HR面个人感觉是难度最大的HR面,而且有淘汰的可能性....
1.你实习时候作了什么?你感觉你的同事怎么样?
2.你有没有做项目过程中有一些自己的想法?同事让你不要在意你就把这个想法抛弃了吗?
3.你觉得一个产品落地最重要的是什么?你和产品经理吵过架吗?(....)
4.对杭州城市的看法
以上就是所有的阿里面试环节,最后也幸运的拿到了阿里的客户端开发岗位的Offer,最终应该就签了这里了吧。
今日头条其实一开始没打算投的,因为感觉笔试题目比较难,自己转行说实话算法这里比较薄弱,没有特别的刷过题目。但是联系要了一个白金码,可以免笔试,于是就申请了尝试,头条很有效率,一个上午就把三轮全面完了,我从9点-12点基本上一直在视频。
三面感觉流程都差不多,先发一个链接写算法题然后问基础知识。
1. 算法:二叉搜索树中第K小的元素
2. TCP三次握手和四次挥手?为什么需要这个?
3. 简单说一下http和https的区别
4. View事件分发机制
5. 有没有遇到过滑动冲突?怎么解决的?
6. 大量图片的加载与刷新怎么做?
7. 你有了解过哪些开源框架?可以简单说一下吗?
1.算法:判断链表是否有环?找到环的入口
2. 实习的项目?比赛的项目?难点在哪里?
3. 有做过NDK相关项目吗?
4. Handler源码,有继续深入到底层了解过他的实现吗?
5. AIDL简单说一下
1.算法:栈实现队列和队列实现栈
2. 问实习项目?
3. 开源框架用过哪些?源码看过吗?
4. 你有没有什么博客或者GitHub之类
5. 你对Android未来发展方向?
6. 你还了解过机器学习?简单说说吧?
这一面比较轻松,大多数都是自己发挥的问题吧,答得还可以。
其他的面经我放到另外的博客另外说