笔者15年毕业一直在小公司,以为彻底靠自学已经到了本身的天花板,而后想进大型互联网公司发展,因此年前辞职,放弃了年终奖,年后就直接来的北京,面试的公司有稳定的大公司,也有创业型公司,有些创业型的公司面试质量也挺高的,不输于一些大公司,下面会说到。前端
无论是Android基础仍是Java基础以及常见的数据结构,这些是无原则地必需要熟练掌握的,尤为是非计算机专业的同窗,面试官一上来确定是问你基础,要是基础表现很差很容易被扣上基础不扎实的帽子,常见的就那些,只要你平时认真思考过基本上面试是没太大问题的。java
基本上每家公司都会有算法题,我当时是看了左程云的《程序员代码面试指南》,重点看了数组跟链表,二叉树没有去刷算法题,对于二叉树的掌握在于三种基本的遍历以及在排序算法中堆排序中用到的二叉堆,而后每道算法题都先本身去实现,先写思路,而后本身去实现一遍,而后再看看答案,记住答案的思路,次日再从新按照答案的思路实现一遍,这种效果很是好,我没有去刷不少题目,而是想经过这种方式去分析常见的算法题,因此我不大建议去刷算法题,首先做为客户端开发,涉及不到不少的算法,第二,面试的时候考的算法大部分都是很基本的数组组跟链表构成的,最后算法这个东西是个无底洞,我的以为不必去刷题,刷题可能对小公司有用,可是大公司更看重你解决问题的能力。python
对于Java,加载的是Class文件,通常会问到Java运行时的内存分配,类加载机制以及GC,实际上后面两个问地比较多,尤为是GC相关,每每结合四种引用出题,最后会经过这个来引出内存泄露相关的一些问题。android
Android的虚拟就DVM以及ART是对JVM作了一些优化,加载的是dex文件,对Class字节码作了一些优化,这个里面其实挺复杂的,我只知道一些基本的概念。程序员
这个其实要是问起来实际上是有不少东西的,若是是Java相关其实还好,会问你类加载机制,可是Android里面除了Java的类加载机制以外,还会引出插件化跟热修复。面试
基本上稍微大点的公司都会问到,不过个人回答始终如一:我只能看懂C的代码,项目中没有用过JNI,固然这个属于加分项,由于我当时的选择是把我用过熟悉的东西研究地倒背如流,而不是在本身平时不多接触到的东西上面搞个只知其一;不知其二。算法
Binder系列,各类AMS,WMS,PWS,常问到的有APP的启动流程,而后两个Activity相互跳转的时候的生命周期,Activity的生命周期。数据库
不要想着什么都会,那样不现实,好比说我对Binder机制以及热修复,插件化这块儿确实了解地比较浅显,也跟高德,爱奇艺等公司的面试官聊过这个话题,这些属于加分项,不会影响到最终的面试结果,还有就是算法,面试最多考一道或者两道算法,因此不必在这方面花太多的时间,掌握好常见的数组跟链表,二叉树/堆了解一下,基本就够了,公司看重的是你解决问题的能力,你把原理掌握好,常见地基本上都没什么问题。设计模式
当你基础知识OK,本身用过的东西的理解地有深度,解决问题的能力OK,若是面试官想要你,那么他会去找你的优势,反之他会去找你的缺点。因此若是你想进某家公司,那么你就按照他们的要求去面,就算面不上那么也没什么,只能说不合适,而后查漏补缺继续面,不要由于某一次或者几回的不顺就否认本身,有些公司的面试官就是喜欢装,并且仍是大公司的。数组
学历很重要,个人学校只是个普通本科,相对通常,因此投了不少知名互联网公司简历都过不了,就连好大夫在邀请我面试的时候特地问了我是否是统招一本,任何行业都看重学历,不只仅是IT,那些说学历不重要的基本上都是一些学历比较好的或者是在Android比较火地那个阶段开始搞地Android,他们这批人每每会以为在03年跟18年加入的阿里的难度是同样的,那些以为学历不重要的能够去看看张雪峰老在《演说家》中的演讲,不要说什么3年之后公司就不看学历了,学历是一生的事情,那些高考可以碾压你的人,出了社会只要他们愿意,照样能碾压你,你努力,你拼命,别人也不会睡大觉等你。
科班很重要,若是你本科学地是非计算机专业,任何一个面试官或者HR都会认为你基础不行,你须要花不少的时间去精力去补基础,而后再花时间跟精力在HR不Pass掉你简历的状况下摘掉基础不行这顶帽子。
工做背景很重要,若是你有大公司背景给你背书,相同的岗位,你进入的门槛比有大公司背景的人要高地多,若是你有大公司背景,无论是面试官仍是HR都会在你面试前给你打一个较高的基本分,这个是颇有利于你经过面试的。
不过上面都是既定的事实,你无法改变,因此当我意识到这些问题的时候,我只能去不断地提高本身的能力,去花更多地代价去得到一个面试机会,去证实本身的能力进而进入到一个比较好的平台。
面试机会来自于V2EX
面试官是Android的负责人,比较有亲和力,看起来比较幽默,,而后先从个人笔试题开始聊,聊地最多的是进程,他问我应用能不能一上来能不能开多个进程保活,对于这个问题我知道确定是不能的,由于本身平时确实没有在项目中开多个进程,而后面试官态度很好地分析了下说,由于多进程首先会有多个Application,数据会被初始化屡次,其次进程间通讯比较麻烦,还有一个就是每一个进程有单独的虚拟机,多个进程就会比较占内存,确实是这样,这些我有些印象,可是平时确实没有认真思考过这些问题,而后问我有没有用过Binder,我说只是写过几个Demo,而后面试官就说这个就不问了,就开始聊一些我简历上以及我会的东西,好比说Volley的优缺点,而后提出了一个问题说Volley可否下载电影以及加载大图片,我当时根据我看的源码说能够,由于Volley自己是不支持下载的,须要自定义Request才能实现这个功能,而后若是是读流到磁盘是没问题的,他说不行由于Volley是在内存中进行操做的,我当时跟他争了下,我说Volley原生不支持下载功能,只能自定义Request,包括上传也是须要自定义的,而后他感受我有些不快,说读流确实是能够,可是ImageRequest去加载大图片的时候,也是在内存中读取的,这个时候就会有问题。不过我想了下确实是这样,这样的话确实会出现OOM,接着面试官就问了一个基础的问题,好比说final通常怎么用,final修饰对象的话可以调用修改属性方法等,最后让我写了个快排。
面试官问的Java偏多一下,同时也问地很深很细,关于Binder问到了一个问题就是SM是何时注册的,这个完问题我彻底是懵逼的,而后给我出了一个算法题,就是公差为1的等差数列求和,当时我用了一个很笨的方法,就是用递归实现的,由于当时面试官不是直接说的等差数列,说的是若是输入0,返回0,若是输入1,返回1,若是大于1就依次累加,以前思惟定势了,没有想到这是个等差数列,而后面试官问我能不能优化,我当时想到了高斯,而后把首尾相加,作了一步优化,后来实在是感受无法优化了,面试官给我写出了那个等差数列的前n项和,不过当时面试官给我出了这个题目,返回值是int,我当时注意到int可能会越界,而后说应该返回long,估计是这个细节可能打动了面试官,而后咱们就从int,long,到String,double以及BigDecimal,说了不少,由于以前在项目中计算价格的时候确实出现过精度丢失的状况,因此我对这块很熟,因此也聊了不少,聊到屏幕适配,ConcurrentHashMap所分的段数,最后问了我最大的一次线上Bug是如何解决的,还有在Android中如何查看一个对象的回收状况,那个确实不知道,后来想一想应该经过ReferenceQueue能观察到,由于平时没有想过这个问题,因此被问到的时候很容易懵逼,不过总体表现还能够。
面试官是火币的大前端负责人,问了我一些项目开发流程上的东西,相似APK的大小如何进行压缩,如何查看APP的崩溃率,以及多渠道包,而后聊了下薪资以及可否加班等,大部分都是一些非技术性的问题,次日火币网就给我Offer了,虽而后来我没有去这家公司,仍是挺感谢这家公司的,给我后续的面试增长了不少信心。
面试机会来自于拉勾网
面试官是是Android的负责人,主要是在聊本身作过的东西,而后发现咱们不少技术上的观点都是相同的,好比说咱们都认为任何一个框架两三句话均可以把原理说清楚,可是真正本身去实现的时候每每比这个复杂的多,我告诉他我在本身写图片加载框架的时候踩过的坑,而后面试官也说了他在使用MVP的过程当中遇到的管理Presenter的生命周期过程当中的探索,由于以前个人一个项目采用的是MVC,当时是用的RxLifecycle进行管理的生命周期,在MVP中我是在BaseActivity中统一把请求取消掉了,而后他说了他的解决方式,确实颇有探索精神,我也学到了不少东西,最后简单说了天猫的七巧板布局,大部分仍是在聊项目中的一些细节。
面试官是移动端负责人,而后问了我APP的启动流程,这个我说我没怎么深刻研究过,面试官也没说啥,而后继续问了一些Java基础,Java引入泛型的缘由,泛型边界,集合框架,最后问到了SparseArray以及ArrayMap。最后说到了内存回收,而后带出了GC以及四种引用,因为他们的项目中不少地方用到了WebView,因此他问了一些WebView的跟JS进行交互的问题,最后还聊到了WebView的性能优化,感受面试官确实对WebView比较了解,不过我也以为没什么,毕竟这块不是我擅长的地方,面试官也表示理解,而后最后出了一道算法题就是回形打印二维数组,总体来说他们其实仍是侧重于项目,也考察了基础,总体感受他们的技术仍是很好的。
面试机会来自于Android Weekly
面试官问地都是Android底层的东西,有些还涉及到了Android的Hook插桩技术,面试完,我以为本身跟只傻狗同样,什么都不会,问了有10来个问题,惟一的两个应用层的问题因为紧张也没有答好,一个是线程池原理,一个是DCL单例少写了个非空判断,其他的问题真的是答地很水,由于前面的底层知识了回答地很很差,因此对本身应用层的发挥确实是有影响的,因此但愿你们在面试的时候心态必定要平和,切记没关系张。因为他们项目在底层采用了不少关于IPC之间的东西,因此基本上须要对底层很了解的工程师,我本身也感受确实回答地力不从心,并且我是给他们CTO直接发的简历,忽然间以为很差意思,回答地挺垃圾的。
面试官是作IOS的,基本上是处于聊天的状态,反正聊地很开心的,而后对我评价很好,他说他不懂Android,可是能感觉到个人技术好奇心,听了仍是很开心的,反正基本上没怎么聊具体的技术,主要是聊了聊IOS的Hook以及热修复相关的技术,问他们是怎么实现的,由于我知道IOS在这个上面比Android要复杂一些,反正总体就是很放松。
三面是产品总监,基本上就是谈古论今了,让我说说对Android以及IOS的见解,我说谷歌将来确定会在人工智能上干掉IOS,而后他说为何,我说由于谷歌掌握了搜索的大数据,Android产品接入的成本低等等,而后我跟他说我但愿产品在设计原型的时候须要考虑一下Android跟IOS两个平台的差别,不能一刀切,他说是应该这样,可是有不少时候须要保持平台一致性就须要作一些妥协之类,最后其实还聊到了锤子,聊了聊对老罗以及锤子的见解,产品总监说锤子的发布会每场他都会看,而后他还给他家人买了一部坚果Pro,反正想着确定会挂掉,索性就不那么拘束了,就是一种很放松的状态。
四面是CTO面,当时有点紧张,CTO颇有绅士风度,一上来主动跟我握手,当时我有些紧张,手心都出汗了,他说我是否是很热,我说是的。而后说本身从网易出来以后就开始创业了,一直是在作提升企业生产效率相关的产品,如今作的GrowingIO也是的,而后问了我不少问题,主要是我在上一份工做中的成长跟收货,将来的规划等等,以及在项目中遇到问题是如何进行团队协做的,问地很细,能够看地出来公司对这款产品很是重视,像滴滴企业版,陌陌等都是他们的客户,感受这家公司会发展很不错,最后我也问他为何会尝试作那么多产品而不是专一于某一款产品等等,而后他也给了详细的解答。
没有给我Offer的缘由在于个人薪资可能开地太高,一面基本上是处于被淘汰的局面,可是我跟后面的面试官都聊地很好,晚上还在那儿吃了顿饭,最后CTO还跟我聊了好久,我以为他们应该是以为我能够培养,可是薪资要低偏高,因此就最终放弃了我,由于对于创业公司,个人薪资都开地高一些,无论结果怎么样,仍是挺感谢这家公司的,但愿他们发展地愈来愈好。
面试机会来自于拉勾网
一面仍是只要从简历上入手,而后问地相对来讲比较简单,面试官应该跟我年限差很少,更多地在于不少东西怎么去使用,比较侧重于一些细节,不过总体来讲表现地自我感受比较满意,由于基本上都是问我会哪些东西,而后从我会的角度出发,一步一步来进行深刻交流。
面试官看起来经验比较丰富,偏向于Java这一块,应该是从Java转的Android,看上面的问题其实就可以看出来,问到的Android颇有深度,一上来就搞了个APP的启动流程以及AMS,那个读写锁确实不会,以前没听过,当时是要我实现这个功能,我用了不少种方法去尝试,可是最终没有达到预期的效果,而后面试官就问我知不知道读写锁,我不知道,而后他就没有再深究了,虽然这是一家小公司,可是我能感觉到对一个非科班出身的程序员的尊重,再次表示感谢。
面试机会来自于Boss直聘
电话面试以后就挂掉了,第2个问题回答地不是很好,因为没试过一个线程能建立几个Handler,因此不太肯定,最后仍是对Handler机制了解地不够深入,别的基本上答地还能够,全面屏没适配过,最后就没联系我了。
联系个人是京东上海的部门,而后说他们主要是作底层的,因此问了一些底层的东西,第2个问题,我就以前没遇到过,而后Hook插桩这些,很显然不会,而后就凉凉了。
看面试题其实就能够发现,京东金融是偏向于安全这个领域的,最后面试官也跟我说,我进去以后会往移动安全工程师方向发展,最开始的那个算法,没答好,当时个人思路其实是打算取一个数组就把数组中的元素给置空,可是因为是int数组,因此无法置空,当时就在这儿想了一下子,而后面试官给出的答案是直接删掉这个元素就能够了,可是性能较差,若是考虑性能则能够直接跟尾部元素进行交换,而后下次随机的范围减1就能够了。剩余的问题答地其实还能够。
二面的话问的问题比较常规,基本上跟以前的公司重合度较高,没有难度,主要比较注重应聘者解决问题的能力,特别是像那个权限适配,我以前作过权限适配,因此那个问题回答地他挺满意的。
面试机会来自于拉勾
看过面试题可以知道,一面比较重基础,也是一些重复性很高的问题,不过完美的面试官可能比较注重细节,不少问题你只要平时思考过了基本上是OK的。
二面的面试官是北大毕业的,问的问题都比较深刻,涉及到了不少Java跟Android的细节,后来才知道,他知道我基础还能够,之因此问到后面的那些问题是由于想给我定级,当我说我了解Gradle的时候,面试官问我是否了解Gradle的生命周期,当让我写一个DCL的时候,问我Volatile的做用是什么,如何防止单例被反射实例化,DVM&ART是如何对JVM进行优化的,Class文件如何转换成Dex文件,反正就是你会的确定会让你表达出来,你不会的你也无法装下去。
面试机会来自于Boss
面试官问了不少底层的实现场景,有深度也有广度,在跟他交流的时候,可以很明显地感受到本身在不少问题上没有作过太深刻的尝试,不过总体感受还能够,基本上本身的能力是彻底发挥出来了,不少问题他问地特别细,好比说ANR问题,问到了在四大组件中ANR的时间是多少,还有ListView的缓存对于多种Type是如何实现的,不少问题你只知道概念是没有什么用的,都须要本身的理解,不过像硬件加速这种问题,确实没有细想过,我也不会去细想,觉得以前在传统公司是不可能有时间跟精力了解这些东西的,只能说北京本身来晚了,可是来对了,当面试官知道我是第一次来北京的时候,还跟我开玩笑说会不会干几个月又跑了,最后一面面完以后还让我留了他的电话,说北京租房子挺贵的,要是有什么问题的话能够给他打电话,感动ing。
面试官的问题基本上是没有离开过Binder,热修复以及插件化,不过我确实,因为紧张,快排写地也出了点问题,心中千万头羊驼呼啸而过,尴尬地一比,当聊到组件化的时候,我以为这个是个人优点,而后说了一大堆本身经过反射的实现,而后他说反射会在混淆的时候出问题,还有就是性能上的问题,本身研究了那么久的东西,在他这里没有看到丝毫的价值,确实也比较失落,不过他们是作车机的,确实须要对底层掌握地比较熟练,想着十有八九是凉凉了。
面试机会来自于Trinea内推
一面面试官可能比较忙,没有问太多的问题,主要聊了聊我GitHub上面的开源项目,当时这个聊了好久,而后说了他们项目中也采用了ItemDecoration的列表联动,而后就问了我如何处理ItemDecoration的多个点击,最后聊到了事件分发机制,主要是在ListView里面嵌套一个Button以及在ListView里面嵌套一个ScrollerView让我说一下事件在dispatchTouchEvent,onInterceptTouchEvent,onTouchEvent中的传递过程,面试官先让我说,我只是说了大致流程,而后面试官又给详细地分析了一遍,分析地很是详细,确实让我受益不浅,本身对事件分发的理解又更加进了一步。
二面面试官问了不少基础方面的东西,问地特别细,主要是考察Java基础,感受面试官是想跟我探讨一下比较新的技术框架 的,可是像DataBinding以及Glide这些我都没有用过,因此就问了我不少基础的知识,总体感受还能够,确实有些基础没有掌握好,深度也有些欠缺
面试机会来自于Boss
掌阅总体的面试质量比较高,可是面试官给个人感受有点过于自信,就像第5道算法题,我当时确实没有想到除了遍历以外该如何优化,而后面试官说能够开多个线程,我当时听了就以为很无语,可是他给出的理由是O(n)的算法不能优化,只能开多线程,我说即便不能优化,也是能够在O(n)的基础上进行加快的,好比说用遍历完一遍,作个缓存,作个标记,若是该目录下没有发生变化下次能够直接读缓存之类的,开多线程这种操做我我的认为确实算不上优化,最后这个问题不了了之。然后还有一个问题就是他说在复写equals方法的时候要复写hashcode方法,可是当时我说不必,若是是本身定义的一个类,只须要比对对象的惟一属性,好比说定义一个学生对象,我只须要判断学生的ID是否相等就好了,也就是只须要复写equals方法,不必复写hashcode方法而后场面又很尴尬,我后来想了下可能他想表达的是在集合类中存储的对象必需要同时复写equals跟hashcode方法感应该是说地过去的,可是当时没有这个前提,我以为在复写equals方法的时候不必定要复写hashcode方法,加上前面的那个算法题,可能本身当时情绪也不是很好,因此沟通上确实出现了一些问题。 我记得掌阅是在Boss上面进行投递的,当时是跟掌阅科技的移动端负责人黄剑进行沟通的,其实最开始知道黄剑是在跟包建强老师一块儿作一个自定义的ListView的时候,那个时候在性能优化的时候在还在同一个微信群里面请教过他问题,因此对掌阅的印象其实挺好的,可是此次面试确实体验不是很好。
面试机会来自于Boss
一面面试官问地都是基础,可是有些有难度,好比说那个LinearLayout跟RelativeLayout相对布局,我当时只回答了LinearLayout须要测量一次,而RelativeLayout须要测量2次,而后若是只嵌套一层首选LinearLayout,若是多层须要使用RelativeLayout,可是当具体问到RelativeLayout两次都测量什么的时候我没答上来。还有那个算法题。最后实现了,用数组实现的,可是我感受应该是树,可是对树不熟悉,因此用的就是数组。
二面感受有点没怎么发挥好,由于面试官首先问了问我GitHub上的开源项目,可是他找了几个问题,问我怎么优化,而后又在我项目里面发现了几个问题,问我怎么优化,很明显那些问题都是他是比较熟练的,并且都是自定义View相关以及性能优化方面的,最后又拿了马蜂窝APP里面的一个滑动动画问我如何实现,基本上都是在问自定义View,基本上二面就是问了这几个问题,每一个问题都扩展了不少,可是都是View相关的,没有涉及到其余的知识点,可能他们的对于自定义View这块要求比较高,同时也要兼顾到性能调优,总体来讲,自定义View确实不是个人强项,最后还聊到组件化,他们如今也在作组件化,我说了个人方案,貌似他不是很满意,最后也能感受到发挥地不行,因此被Pass掉了。 还有一个细节就是,一面面完,当时二面面试官不在,是次日过来复试的,次日来了签到以后又等了将分钟,而后他们说签到机坏了,当时感受挺很差的,不过当我二面的时候在那里等面试官的时候,马蜂窝的一个员工,年纪挺大了,而后看到个人访客牌,单独给我倒了一杯水,确实挺感动的,这个员工不是他们的接待人员,让我肃然起敬,而后他就继续上班了,总体发挥很通常,不过那儿的环境确实特别好,颇有风格。
面试机会来自于拉勾
爱奇艺确实要求比较高,面试题目难度特别大,让我说RV的时候,我说了不少,可是面试官感受都不太满意,而后问地特别细,涉及到了AMS跟WMS,这些问题我回答地通常,除此以外,都答地还能够,最后面试官说能够看出我有些东西研究地比较深,可是没有抓住关键点。
二面感受比一面要简单一些,可是也有几个问题我没答上来,当面试官说如何在Bitmap解码的时候复用申请的内存,我也是第一次知道原来这里能够复用,而后我提出了本身的疑问,说若是复用的话,那么何时回收,他说fresco有本身的回收机制。最后还有Context的理解,我只是看过郭霖的博客,有点影响,确实想不起来了,也是有些尴尬,包括那个用注解实现一个findviewbyid,也是有看过,可是没有完整的思路,最后支支吾吾地回答了一点,除此以外,别的还好。
三面面试官应该是技术总监,第一个问题就把我难到了,我凭感受说是BaseAdapter,可是转念一想,不对,ListView还支持ArrayAdapter, 而后面试官笑着说让我回去看看源码,接着问了RecyclerView如何绘制的,我当时说了比较多,可是都没说到点子上去,面试官最后给我耐心地分析了下。给我印象最深的是那个算法题,面试官开始问我有没有搞过ACM我说没有,而后他就说看你不是非科班的,就出个简单点的,而后出了两道算法题,一题是实现一个链表,另一个是写一个快排,可是我感受面试官对非科班的有些偏见,而后我就说这个太简单了,我说你就把我当作科班的,而后说我但愿可以跟科班的作同样的题目(后来想一想本身有点飘),而后面试官就出了上面那道算法题, 我一看到O(lgn),感受凉凉了,想着快排最多也是O(nlgn) ,因此当时想了好久,也没实现,而后面试官给了我提示,说知道快排原理么,而后我在脑子里面过了一遍快排,忽然想到了解决思路,而后跟面试官说了个人想法,就是用改良的快排,他微笑着表示承认,而后最后说如何去找到标定元素,我说用随机数,他说随机数不太好,而后问了我数学怎么样,我说还行,他说能够采用正太分布,找到线性分布的那个中间点,确实是能够这样,由于没有规律的数据是能够看作正态分布的,也就是符合线性回归的。
面试机会来自于内推
1.APP启动流程 2.Webview内存泄露 3.组件间通讯,如何传递对象 4.Arouter原理 5.如何取消一个网络请求 6.两个activity之间来回切换的生命周期变化 7.进程间如何通讯,Binder机制 8.内存泄露及优化 9.自定义view以及事件冲突 10.线程池参数及定义,多线程是否必定会高效 11.电量优化
美团实际上面了三面,可是面试题跟前面的面试官不少重复的,因此就只写了上面几道题目,总体面试感受都答上来了,可是问的有些问题确实没接触过,好比说Webview的性能优化,电量优化等,最后HR反馈的状况是基础很好,项目经验不足。
面试机会来自于Boss
笔试题,我答地感受通常,由于我面试的是猎豹移动的Clean Master,因此偏底层一些,不过总体还好,并且笔试题在面试过程当中基本上不怎么问,只是作一个参考。
一面面试官主要是从宏观的角度上看待业务,产品,由于可能看了个人博客跟GitHub,对个人技术有一个大体的了解,而后问了一些基础的东西,就进入了二面。
面试机会来自于拉勾
本身带电脑,他们提供一个接口,实现一个瀑布流,须要考虑动画,内存管理等,能够上网搜,限时90分钟 当时我去的时候出了个之外,HR给个人WiFi我无法连GitHub,当时想着用本身封装的ImageLoader,没想着直接用第三方,在使用RecyclerView的时候依赖也无法添加,因此最开始时间都浪费了,直到一面面试官下来,给我链接了他们的员工wifi,我才能添加依赖,尴尬的一比,不过到最后时间到了仍是没有实现预期的效果,面试官最后问我,我说了个人考虑,他说只是想看看我解决问题的能力,彻底能够用第三方,不必本身实现,不过对个人态度仍是表示承认的,而后开始一面。
基本上在以前的面试都有涉及到,依然是问我会的东西,一点点深刻,第9道面试题我记得在掌阅面试的时候那个面试官说微信用地是广播,可是摩拜的面试官说微信用地是start ActivityForResult,这个我决定之后本身去深刻研究下,看看他们究竟是如何实现的,别的问题都是比较常见的。
如何实现一个推送,极光推送原理
说说Http协议,以及Tcp/Udp
常见的设计模式,如何实现一个观察者模式,若是须要有序通知观察者,该如何操做
实现一个图片加载框架应该考虑哪些
线程池有哪些参数,应该如何设计
性能优化是如何作的
Java为何要推出HashMap,它是如何解决hash冲突的
JVM内存分配,编码时如何注意内存泄露
Binder机制原理
摩拜问地都是很常见的问题,我能感受到面试官在问我问题的时候并不在意我对这个问题掌握地有多好,而是更加关注我对待某个知识点的态度,更多地赋予面试题一个场景,而不是空谈理论,是我比较喜欢的面试官。
三面面试官跟我聊了聊一些新技术,还有就是我本身为何要重复造轮子,我说为了保证项目的稳定性同时可以更好地去定位问题,而后聊了聊他们目前在作的项目,总体感受特别好。
上面说地都是一些硬实力,下面简单说些本身在面试过程当中总结的一些面试以外须要注意的东西
除了上面提到的公司以外,我还面试了人人车(Boss直聘),以及58同城(Boss直聘) **并且也都收到了他们的Offer,因为他们面试的顺序排在后面,并且面试题跟以前的面试题有不少共同点,因此就没有放出来,此外还面试过快看漫画,面了两轮,而后CTO须要改天面,我内心其实比较反感这种公司的,由于做为面试者跑一趟自己就很辛苦,因此后来复试我就没去,还有一家是青橙科技也是须要我去复试,太远了,并且当时手里已经有了Offer就没去,真心但愿这些招人的公司可以在一天内把流程能走完,毕竟像一些大公司在跟我沟通面试的时候都会约定个时间能把全部的面试流程走完。另外还有一家是豆果美食,面试官没怎么聊技术,基本上都是在谈人生,谈理想,最后互相加了微信,而后当时问我有没有别的Offer,我也知道本身不会去那里,而后就说爱奇艺给我Offer了,可能他也知道我不会去了,后来就没有通知复试什么的,不过感受他比较自信,至少比我自信。
虽然本身此次没有进入到BAT等一线互联网公司,头条,滴滴还有陌陌的简历都被刷了,跟那些大佬比起来确实惭愧不少,感受没啥必要写这个面试经历,可是总以为写出来了能够帮到一些人,由于本身以前在技术的道路上也迷茫过,从最初的Android小白,当时看郭霖,张鸿洋还有主席的博客学习,而后在迷茫的时候看主席还有VB的知乎Live,也认识了不少小伙伴,在技术上给了我不少帮助,让我可以坚持走到今天,同时也感谢每个给我面试机会的面试官,Android之路还会一如既往的走下去,但愿这篇文章能够帮到一些人,就像当初帮到个人那些文章同样。