Android开发三年了,阿里P5都没面上,我到底败在哪儿

前言

笔者17年华东某211大学毕业,软件工程专业。毕业后本地一家中型互联 企业从事Android移动应用开发。年前辞职了,打算年后“金三银四”换个更大一点的舞台。目标有阿里、字节跳动、上海哔哩哔哩。比较中意他们的企业文化。

将近过年的时候,疫情席卷了全国(到现在已经是全世界了)。导致我的面试计划被推迟。在家里待了半个多月,简单的刷了一些面试题。感觉自己在学校的知识学得已经八九不离十了,加上有将近三年的工作经验,计划的阿里P5应该是十拿九稳的。

将近三月底的时候,才得到了阿里 招的信息,我很快投递了简历(简历很漂亮,211毕业、Android垂直领域三年开发经验)。不久后就收到了面试邀请。视频面试,下面是我的三面凉经。

阿里一面:

1.自我介绍

2.JVM内存布局,GC垃圾回收机制

3.对做智能家居有没有兴趣

4.设计模式怎么分类,每一类有哪些

5.乐观锁、悲观锁

6.动态代理的几种实现方式以及优缺点

7.直接在Activity Sleep 5000ms,再post一个runable会不会ANR。

8.looper的唤醒是在Java还是Native层,怎么做到的

9.Binder通信机制

10.如果让你设计一套进程间通信的机制,你会怎么设计

阿里二面:

1.写一个二叉树的深度度优先遍历,递归 非递归

2.Koltin为什么比Java更安全

3.安装包优化有哪几种方式

4.如果一个app无法访问 络,你怎么做数据存储。

5.事件处理函数有哪几个,父View 子View 监听同一个事件,重写哪些方法。在哪个View重写?

6.如果android没用对应的view,flutter能运行吗?手写单例模式,volatile 跟 synchronized区别?

7.如何处理Crash,NativeCrash呢?Google是怎么做到的?如果上 过程中再次产生Crash能不能捕捉到?

8.apk编译打包流程 V1,V2 签名区别

9.binder的Native层代码看过吗

10.Android 沉浸式状态栏 怎么实现的

阿里三面:

1.handler中loop方法为什么不会导致线程卡死,动画的原理,有没有实战过补间动画;bugly上面收集到的最难的bug是怎样的,如何解决的?

2. 络协议okhttp中的缓存机制,dex加载流程,组件化的原理;

3.应用启动流程,activity 启动流程,为什么要每个应用有一个自己的虚拟机,这个虚拟机和JVM的关系。

4.如果让你实现一个调试器,你会怎么设计?静态调试?动态调试呢?

5.React Native跟原生开发的优劣

6.hashmap的基本原理

7.如果要你自己去实现一个图片库,怎么做?

8.插件化的原理有了解过吗?

9.MVC MVP MVVM原理和区别

10.做过哪些页面卡顿优化,是怎样做的。

11.谈谈对热修复的理解

经验总结

以上就是我的阿里之路三面凉经了,前两面还算比较顺利,到第三面基本上没有回答出来几个。细心的朋友可能已经发现了。阿里三面问的大多是底层的原理。总结一下我的失败经验大多是:我并没有去追根溯源搞清楚那些方法、工具、框架到底是怎么实现的,他们的工作原理是什么。我个人觉得自己在大学时期的项目经历已经足够丰富了,但都只是把纸面上别人的东西搬运、组装,变成了我自己东西,其实那终究不是我的东西, 会需要的是创新型的人才,并不是一个敲代码的搬运工。要创新,那必然要搞懂原理,你才能够是一个创造者。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年4月25日
下一篇 2020年4月25日

相关推荐