Android进阶之路Android开发Android技术知识

被辞退后我一周面试了13家公司,想给你们分享这个收获

2019-12-12  本文已影响0人  Z_萧晓

2019 年对我来说是最幸运的一年,在这一年我多了一个「小情人」。然而,刚忙完回到公司的第二周,我接到了最残酷的通知,公司经济状况不佳 —— 裁员!

虽然可以选择降薪留下来,但是社保公积金最低,还需要996,无奈只好选告别了待了三年之久的 xxx,没有 n+1,没有 xxx,mmp。
由于离职时间点比较尴尬,马上就是中秋节,刚好可以放松下回家陪陪家人。

中秋过后,尝试投了几份简历,但是效果不太好,面试机会也不多,可能是由于马上就是国庆长假的缘故(也只能这样安慰下自己)。

下面是我面试全部之后整理的面试题,把一些重要的面试题给记了下来,有一些已经忘记不过不碍事,是一些比较简单大家都能答上来的,希望这些面试题能给之后面试的朋友们一点帮助。

注意文末的准备与建议,还有整理好的面试PDF文档分享~

优贝在线

这是一个神奇的公司,只怪自己太菜笔试都没有过,出师不利啊。然而奇怪的是国庆后,该公司的HR找了我不下3次。

三节课

必要商城

展心展力

团车网

某课

这是我迄今体验最差的面试没有之一,面试官特别装逼,一直问我 API 细节,方法里有什么代码。最后面试官竟然 JVM 运行时内存区域和 JMM 都分不清,我实在忍不住了反问了一句:公司难道是在招 API 工程师吗?

诸葛找房

异乡好居

FineChart

阿里体育

电面

一面

二面

不得不承认阿里实力还是很强的,也可能我投的岗位期望 P8 以上水平的缘故,被虐的很惨。突然感觉这几年都荒废了,选择大于努力,一定要选择好的方向,比如我选择小程序就是一个错误。

多点科技

一面

二面

HR面

董事之一

美餐网

你没有看错,就只有两道面试题,白板手写代码,这是我遇到的最奇葩的公司了,最后还说我代码写的不讲究(这 tm 是面试吧,我已经说了由于篇幅有限,一些细节就忽略了),太浪费时间了。

360

一面

二面

三面

关于准备

每个人应聘的职位级别不一样,需要准备的范围也有所不同。我应聘的是高级职位,主要准备了以下几点:

Java 基础

一般都会问 Java 虚拟机相关知识:类加载机制、双亲委派模型、垃圾回收机制、运行时内存区域、注解、泛型、反射等等。强烈建议精读一下《深入理解 Java 虚拟机》这本书。

Java 并发编程也是高级必问知识:Thread生命周期、JMM、volatile、synchronizied、final、JUC、Lock、线程池等等。推荐看一下《Java 并发编程的艺术》。

Android 基础

这部分内容比较多,还是需要平时多积累,养成看源码的习惯。

现在一般都不仅仅问原理是什么了,比如 View 绘制原理会问 requestLayout() 和 invalidate() 什么区别?什么情况下 requestLayout() 会执行 onDraw() 方法?

Handler 机制大家都会说,网上找找都能找到,现在会问一个线程几个 Looper,几个 Handler?Looper 中的死循环为什么不会卡死主线程?IdleHandler 的原理?发送延时消息怎么处理的?

如果你能从 Handler 答出 epoll 机制,接下来会问 epoll 机制的原理,有没有看过源码?

高级岗位 Framework 层原理肯定逃不过的,系统启动流程、Binder、AMS、WMS 都是最基础的,最好有一个自己深入研究的方向,比如 SurfaceFlinger。

进阶一定要看刚哥的《Android 开发艺术探索》必备,Framework 部分《Android 内核剖析》、《Android 源码情景解析》、《深入理解 Android》系列等都是很不错的书籍。

网络基础

面试中一般会问 HTTP 的三次握手、四次挥手过程,以及为什么?HTTPS 的通讯过程?等等。

网络是个大方向,对于 Android 工程师来说,常见的概念必须要了解的,当然深入研究一下也是很不错的加分项。就像直播,网络优化等方面都离不开网络知识。

推荐看一下《图解 HTTP》、《图解 TCP/IP》,向深入研究可以看《TCP/IP 详解》、《UNIX 网络编程》。

数据结构与算法

数据结构计算机专业的一般都是必修课,网上资料很多这里放上我收集到的一些资料,文末自取。

面试中数据结构一般会问 Java 集合类:ArrayList、HashMap、ConcurrentHashMap 等等,常见的高频算法题一定要准备下。
算法可以看看《算法》、《算法导论》、覃超的《算法面试通关 40 讲》、刷下 LeetCode。

设计模式与架构

设计模式一般会问你在项目中常用的设计模式有那些?等你说完之后会问你怎么用的,什么场景用的?它的优缺点是什么?遵循了什么原则?违背了什么原则?...

架构 MVC、MVP、MVVM 烂大街的问题,一般会问它们的优缺点各是什么?

总结

虽然后面还有好几家面试,也有像豹厂这样的很不错的公司。但不得不承认一天面两家,一周面 10 多家实在太累了。

在收到大数字公司的 Offer 后就没有再面了,加上 HR 将近五轮的面试聊得过程都很愉快,大数字公司也是我比较理想的公司。

虽然在之前也收到了几家很不错 Offer,相比之下还是大数字公司比较适合我,接下里的几年也需要好好沉淀一下技术了。

经过这一次的被动面试经历,我个人感受有以下几点:

一定不要裸辞

如果是裸辞找工作,HR 一般都会问什么时候离职的。如果手里没有 Offer,就很被动了,很有可能被压薪资。主动权一定要掌握在自己手中。

选择大于努力

即使很努力如果方向错了就是浪费时间,就像我选择了小程序就是个错误(大前端坑太多,入坑需谨慎)。我的建议是多深入研究一些以不变应万变的技能。

学历与履历

虽然说能力很重要,但学历是敲门砖(HR 就看这个)。如果连面试机会都没有,还怎么谈然后?如果学历不突出有很好的大厂履历也很不错,貌似是个蛋生鸡,鸡生蛋的问题。

充分准备

一些基础知识和理论肯定是要背的,要理解的背,用自己的语言总结一下背下来。

虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,我能明显感觉到国庆后多了很多高级职位,所以努力让自己成为高级工程师才是最重要的。

好了,希望对大家有所帮助。

接下来是整理的一些Android学习资料,有兴趣的朋友们可以关注下我【主页的简介】查看免费领取方式

①Android开发核心知识点笔记

②对标“阿里 P7” 40W+年薪企业资深架构师成长学习路线图

③面试精品集锦汇总

④全套体系化高级架构视频

Android精讲视频领取学习后更加是如虎添翼!进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!

获取方式:关注我 主页 查看免费领取方式!

上一篇下一篇

猜你喜欢

热点阅读