2020 字节跳动,网易,华为,小米,讯飞Android开发岗面试经验总结!

首先自己是在某勾网投简历。搞的我真的是快怀疑人生了。每天都投一些公司,但是都石沉大海。然后我觉得是自己的简历写的有问题。然后找各种朋友帮忙修改,然后又持续在某勾网投了一个星期。纳尼?纳尼?纳尼?难道看我只有半年工作经验?然后给朋友抱怨了一番。被安利去了其他的招聘网站。面试也终于是步入正轨!就这样白白耽误了我2个星期的时间。

因为自己刚刚毕业半年,其实很多公司都有工作经验限制,大公司的话简历确实不好过。但是创业公司不怎么care这些东西。自己前前后后面了5,6家公司吧。所以还是建议各位同学,不要像我一样浪,毕业就跑来创业公司,想要独当一面。我来捡几家我觉得有代表性来说吧。


网易

首先在被某勾网整的精神崩溃的时候,因为有朋友在网易做HR,所以简历给过了(其他BAT应该都没办法过简历)。然后面试:(BTW:到现在为止我觉得网易的面试是比较有水平的,问题由浅入深,慢慢触及到自己知识的底线。)

第一面面试的内容大多还都是简历上写的相关的内容。

1.自我介绍:

简单介绍了一下自己,还有自己做过的OpenGL视图库和骨骼动画播放引擎讲了一些。但是面试官应该是不怎么熟悉这些的。不过也算突出了自己的特点了。

2.然后应该是想看看我基本界面编辑会不会,然后问了常用的布局有哪些?这个问题很简单嘛,自己把FrameLayout,LinearLayout,RelativeLayout讲了一通,然后又讲了Coordinatorlayout和ConstraintLayout。

3.然后他问了开发是使用什么工具,怎样调试程序,和解决bug的。

自己把日常的做法讲了一遍。包括各种断点的使用方法。内存泄漏的检测方法。内存抖动如果查找到原因和如何使用TraceView来进行性能调优的。然后又问了一些具体的操作方法,估计是想看看是不是我编的吧。

4.然后开始问架构的东西。

主要是MVC和MVP,当然更主要是MVP喽。然后自己把MVP的架构讲了一下,以及在项目中遇到的MVP架构不合理的地方,和自己认为对这个不合理地方的改进。然后讲了自己针对公司项目的MVP架构,写的Android Studio插件。

5.然后问了我简历里写的技术细节的东西。

比如屏幕适配。项目中为什么使用OpenGL。礼物动画为什么使用SurfaceView,它与View有什么区别等等。

6.最后先让我说我看过的一些Android的源码,然后我讲了一下Activity,PhoneWindow,View他们的关系。

还有Touch事件的分发过程,自己还说看过Handler消息传递机制,不过他没有让去细讲,估计听了前两个讲的挺细的觉得够了吧。然后他又问了一下Activity从Launcher的启动过程。这个自己明确表明没有看过源码,但是自己也简单的分析了一下可能过程,感觉面试官还算认可。之后查询相关资料发现自己分析的有些地方还是不对的,而且还有很多细节没有分析到(囧)。

**整个过程面试下来感觉还是不错的。面试官的问题由浅入深。**而且针对自己项目细节都有针对的问题。面试到最后面试官说之后会有主管给我面试。我觉得一面应该是过了吧。然后收到回复是面试哥觉得我去这个部门太委屈了,因为是游戏辅助APP,然后让HR姐姐把我推荐到云音乐,非常感谢面试哥,人真的蛮好,也谢谢HR姐姐帮忙推荐其他部门。但是无奈云音乐并不缺人,但这里也不要我了……不过对方招聘岗位本来就是高级工程师。可能感觉我经验还是不够吧。


字节跳动

一面 46min
  • 简单介绍项目

  • 了解哪些数据结构

  • 了解哪些排序算法

  • 手撕代码:堆排序

  • Java集合类:a)LinkedList与ArrayList;b)HashMap扩容 ConcurrentHashMap

  • TCP与UDP,区别及运用场景

  • http是用的TCP还是UDP

  • http与https的区别

  • JVM内存模型(Static方法在哪个区)

  • Activity生命周期,Activity启动模式,Handler源码

  • 代码题:旋转数组

(一面面试官很nice,答的时候卡壳还会给引导,问的问题、撕的代码都不难)

下午面完当天晚上就接到约二面的通知了

二面 55min(部分问题有重叠的不再列出)
  • final、finally、finalize的区别

  • 抽象类的成员变量与成员方法的继承

  • socket是否了解,简单聊聊

  • 经典问题:在浏览器输入网址敲回车后经历了什么(这题我感觉我至少说了10分钟[捂脸]) a)三次握手;b)https的加密流程;c)对称加密与非对称加密原理(RSA、AES)

  • 数据库有哪几种隔离机制

  • union与union all的区别

  • MySQL的索引怎么实现的

  • B+树查找的时间复杂度,数据结构讲一下

  • 设计模式:a) 手撕DCL单例;b) 还了解什么设计模式(讲了观察者模式、策略模式)

  • JVM的垃圾回收机制,GC Roots有哪些,说说了解的垃圾回收器

  • View的事件分发机制

  • 代码题:两数相加(链表,要求原地实现,空间复杂度O(1),这个犯蠢撕了好久结果还是靠强行打印发现的问题)

面完后二面面试官希望直接进行三面,可惜似乎三面面试官在开会,所以另约在了两天后

三面 70min (部分问题有重叠的不再列出)
  • 线程与进程

  • 死锁条件,如何排查、解决

  • 虚拟内存、分页机制,讲一讲LRU

  • 创建对象的方式有哪几种(new 反射 clone 序列化)

  • 序列化与反序列化

  • 反射中的class.forname()与class.getclass()二者有什么区别

  • String.equals(),StringBuffer

  • 类加载的过程讲一下

  • Java锁的种类

  • volatile关键字的作用、原理

  • handler.post(Runable()),聊一聊这个

  • ANR,OOM了解吗?

代码题:a) 螺旋遍历矩阵;b)(变种)原地旋转图像

  • 聊人生聊理想聊爱好

讯飞

相对于网易的面试要简单一些。主要问题偏向于解决他们项目中面临的问题。

1.自我介绍:当然这个还是那些内容嘛。

2.他又问了一些基础的东西。这个我也记不大清了。

尾声

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

最后想要拿高薪实现技术提升薪水得到质的飞跃。最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以为了大家能够顺利进阶中高级、架构师,我特地为大家准备了一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。

当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。

进阶学习视频

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

…(img-L9EZ7FxZ-1726118374796)]

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

[外链图片转存中…(img-bQ4mQ6Cd-1726118374796)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值