面经4

来源:互联网 发布:怎样在淘宝上找客户 编辑:程序博客网 时间:2024/06/05 15:42
广州某 搞语音/视频直播 的公司面试总结,地点番禺区,时间20170715。
#######一面######
面试官过来以后先问我一点基本信息,我说了几句,他就说,你给我做个自我介绍吧,哈哈,然后我简单介绍了一下。他没有准备面试问题,基本上是想到什么问什么。
1.说说有几种排序,并说一下插入排序的时间复杂度:
这个就没意思了吧……好歹出点题做做啊
2.说一下怎么实现线程:
没错,我懵逼了,我说用runnable 或者直接new thread ,或者线程池?
3.说一下怎么在线程中返回结果,并设计一个线程读文件并返回结果的一个功能:
想到了future task ,我发音不准?他没听懂。
4.怎么终止线程:
也算是很老的一个问题了,我说不要interrupt ,尽量让系统自己回收
5.项目中难点:
我说了两点,但其实不难,项目本身不难。
6.怎么优化页面卡顿:
原因很多,我就说我遇到频繁GC 导致卡顿。
7.viewtree  三个参数是什么:
在我和他聊system trace的时候突然问我viewtree的东西,着实让我拐不过来玩,我分析他说的是device monitor的 hierarchy view 视图里面的东西,应该是 ,measure layout draw 的相关时间。
8.怎么分析ANR ,log哪里获取:
我说trace加上main log ,总之根据log 分析,还没来得及细说就切换题目了,唉。
9.怎么发现ANR :
挺没劲的一个问题,用户上报,或者leakcanary 报出来
10.说说后台线程
这个一开始懵逼了,后来反应过来了,就说有优先级相关的东西。
11.rxjava 介绍一下:
说了操作符什么的,也说了线程切换的源码。
12.为什么觉得rxjava 好:
各种操作符,举例说,好用。
13.说一下集合类的排序:
Collection.sort ,我又说可以实现那个compare 什么的接口。
14.说一下接口和抽象类的区别:
老实说这个问题,我一开始认为挺那个啥的,挺弱的,因为好几年之前安卓面试会问这个,现在谁还问这个啊……而且我又不是刚入门的菜鸟,我回答:单继承父类,接口可以多implement ,就是网上那一套区别……但是他说"没有说到本质",他也没告诉我本质是什么,哈哈。
15.说一下自定义view,怎么画一个表盘,表针:
这个很简单。
16.问过我通信工程学了什么课程:
我阳光的以为,他是想针对我的专业课程提问,或者规避我压根没学过的知识点。


想不起来别的,最后说让我等一下,他到此为止……


####二面######
面试官不停翻简历,从第一张翻到最后一张,从最后一张翻到第一张,似乎不知道问什么。问的问题似乎都是硬憋出来的问题。原谅我不厚道的在心里笑了出来。
1.读了系统源码以后对工作有什么帮助,成就了那些成果?(大概这意思):

老实说,看了系统源码以后,还真没在项目中有什么明显的促进,难道觉得看了ams ,我就能把收获转为明显的产出并体现在代码中么,也没那么明显吧……

我回想了一下,他问我的应该是在项目中有什么体现,但是实际上我更多地是由于阅读了各种源码,使我遇到anr、oom crash 等问题以后解决的更加得心应手!至于写在项目里什么东西,还真没有什么,活着没想起来。

2.首页卡顿,你怎么处理的?
如实说的,确实找到了真实原因并修改了,达到预期。但面试官似乎很不屑……
3.好像再次问,看了源码对工作有什么特别大的帮助,体现在哪里?
4.说下插件化:
我就简单说了一下,我学习插件化的方式,了解,但没有在项目中使用。
5.ANR 的log 上报怎么做的:
他问题描述不清楚,搞明白以后,我告诉他是有独立模块,非APP 内置,手机上所有应用的ANR 数据通过系统提供的组件来上报数据。
6.有没有横向对比其它APP 的冷启动时间:
我没有做过横向对比,而且这个东西,似乎抓system trace 就可以看参数了,没有难点,他好像不满意。
7.怎么计算帧率:
我没有计算过,但是我知道有相关的回调方法的API,应该可以用来计算。设计到编舞者的知识,我还可以继续深入到源码聊下去的,但是没给机会。


    聊了二十多分钟吧,后来和我说,不行,根据一面的面试官的评价,及我的表现,认为我达不到要求,我并没有惊讶于这个结果,他自始至终的表现都很飘忽,似乎对我不感兴趣,他刚坐下我就知道结果了。


#####总结#####

    这次面试,礼仪方面做得很好,但是,技术面试似乎随意了一些,给我的感受是,他们不知道要考察什么。所以你简历写什么,他就想办法问什么。他们之前的JD 写的就很宽泛,但说宽泛吧,又写了要会rxjava ,然而并没有特别考察rxjava ,它只是一个库而已,我也看过源码,研究过源码,针对一个库做具体要求,好像有点弱吧……。总之没看出来要求什么。反正他说了,要高手。

    设计模式没问,java 基础问的也略微陈旧,算法与数据结构近乎于没有问,安卓相关的东西仅仅是照着简历问了一些的东西,当然二面涉及到插件化,但是得知我没在项目中使用以后就没想听我讲讲我对插件化的理解。

    其实我没有看出两位面试官得深度,年龄34-36岁左右,从气质和着装来看,整洁干净,长裤!似乎不是基层码农干活的那一部分,毕竟码农的气质还是相对鲜明的,他们两人似乎都不是直接撸码的存在,而是领导层的,需要一个基层高手,来带队?似乎部门的支柱人员离职了?。

     总之,这次面试令我十分困惑,2017年的Android面试与2013年区别很大,但这个公司面试题目和思路还是稍微陈旧了一些,我没有从面试官身上感受到技术的气息,倒是感受到了官员的气息,他们似乎期待求职者讲一些高大上的东西……可是我没有。有很多问题,都可以继续聊下去,深聊下去,聊到原理,源码,但是都没机会聊下去。这种级别的公司,我预期是比较容易进入的,基本没什么问题,虽然答得肯定有不好的地方,总体是不错的,可是没想到,折了!唉……特么的,总感觉啥都没发挥出来,就挂了!!!

    anyway 加强实力吧,拥有选择权总比被乱公司挑来挑去的好!

    后记,要说项目简单,也还好吧,千万台手机安装量,我leader出去面试也是拿这两个项目,鹅厂,头条都拿到offer。虽然我们深度必然存在差别,但不至于面的如此悲催啊!所以我在想,是不是我面试技巧有问题,有一些点,明明能深聊下去,但是我没有掌握节奏,导致没有聊下去就断了,就切换题目了,面试官如果是一个不擅长挖掘应聘者潜能的人,而我又没有引导他循着我的节奏去走,那么我就无法展示自己的底子给他了,他对我的印象就停留在表面。