大牛孵化器--头条Android岗123面面经分享

大牛孵化器:提供最权威的互联网面试指导,让你关键时刻弯道超车~

昨天头条Android岗三轮远程面通过,HR打电话通知九月中下旬会再联系,应该是进入备胎池了吧。

个人情况:西北农村211,科班学渣,无实习经历,无牛逼项目。秋招首面,希望能开个好头吧。

一面

算法题 100W 取top100,准备写快排的划分思路,被怼了,不让写,然后我说那用堆吧,然后面试官让用堆,然后堆排序,忘了,写不出来GG

Handler,IntentService,HandlerThread相关

HashMap原理

Android内存泄漏是什么?怎么检测?怎么避免?

算法题,一组数中有一个数出现了一次,其他出现两次,找出这个数,用异或,写完面试官改成两个数,我说了一两句,面试官估计也懂,直接不让我说了,下一个

ANR 相关

项目。。。网络请求相关的一个简单的框架。

好像不止这点,有点忘了。。。

二面

Throwable、Exception、Error三者的关系,Exception和Error有什么区别,Error可以被捕获嘛?(最后一个问题没答好,我猜的是不可以,没答出来为啥)

然后问我一个图片浏览的项目。

涉及到了图片相关的问题,如何防止OOM,Bitmap的压缩,inSampleSize,inBitmap相关,bitmap的复用,一个Bitmap的内存占用怎么计算,LruCache,DisLruCache,Glide的独特的缓存策略,有什么好处和适用场景。Glide的BitmapPool的内存复用。

自己项目中图片列表这一块做了那些优化(提到了RecyclerView滚动时停止加载,停止时再进行加载。

然后就是ViewPager+Fragment+RecyclerView中多个RecyclerView复用同一个RecycledViewPool,减少内存占用,这里大概也提了一下RecyclerView的复用机制)

然后问我一个对OkHttp的封装的项目,然后问我好像问网络挺熟悉啊?

然后场面一度僵硬,因为网络学得并不好,然后就很尴尬得说了一下自己只是在应用层对OkHttp做了一个封装,主要是看了一下Retrofit的源码,学习到了一些优秀的设计,然后自己试着做一下。

然后面试官大概问了一下Http相关的东西,然后是状态码的含义,4xx和5xx有啥区别。非200的状态码怎么处理,怎么反馈给用户?

然后讲了一下某个应用层项目里对网络请求结果这一块的封装。感觉答得不是很好。

多线程同步相关的问题。

提问很宽泛,问我了解哪些,说一下,然后我说了wait notify,不满意,然后我又说了sychronized,还是不满意继续问,然后我又提到了Lock和RetrantLock,和sychronized的大概区别说了一下。

面试官还是不满意,继续问还有呢?我说我想不起来了,面试官一脸失望地问你知道volatile么?好吧,幸好我知道这玩意儿,然而说了一下volatile的意义,保证内存可见性和禁止指令冲排序,举了DCL的单例说了一下。

volatile能保证原子性么?不能。

ClassLoader双亲委托,类加载流程。为啥要使用双亲委托这种模式,有什么好处?(最后一个问题很懵逼,太菜,瞎猜糊弄过去了)

一个算法题,有N个台阶,123456-N,一个青蛙在0处,每次可以跳3或4或5步,给定一个整数N,判断跳到N最少要多少步。

我一开始想得很简单,觉得对5取模,然后找到之前某个点的最少次数,后面一直每次五步就可以了。

然后面试官让证明,我证不出来,然后想了一下这个思路有点问题,然后提到了动态规划,然后写代码,动态规划。

View的绘制流程,onMeasure,onLayout,onDraw,三种测量模式的区别的场景。这里问得比较浅。

大概就是这样,可能还有些忘了。

三面

一上来面试官让自我介绍,然后问我觉得自己哪块学得比较好比较有自信的可以给他介绍一下。

我想了一下,觉得哪一块都没有自信,好像都会一点,好像啥都没有深入,心疼自己。

然后憋了半天说,我好像没有哪个地方很突出的,我学得比较宽泛。

面试官似乎不太满意,很无奈得说,那我问吧。

View的绘制流程,onMeasure,onLayout,onDraw。

然后给了一个简单的自定义View要求。一个正方形的View,内部画一个圆,直径可以指定,让说自定义的流程。问得很细,包括自定义属性在哪里定义的,在哪里获取的,怎么保证View的正方形,怎么保证圆不会超出View,draw的具体流程。

然后问除了onDraw还有哪里可以自定义的,我一开始没反应过来,面试官又问了一遍,好好想想,还有哪里可以自定义的。

然后我想明白了,可以自定义onLayout,实现一些符合特殊布局规则的容器。

然后我拿FlowLayout作为例子说了一下自定义onLayout。

View的事件分发机制,自己随便提了滑动冲突的解决方案。

项目,基于OkHttp那个封装,怎么构建请求的,怎么解析请求的,怎么实现线程切换。

这里提到了一下Handler,然后追问Handler,于是把Handler那一套说了一遍,没有追问到native层,我也没敢提。

然后回到项目,我提到了解析回调的类型,不传入xx.class,不够优雅。

然后面试官问我那怎么实现的,然而我提到了用泛型,运行时动态通过传入的泛型Callback来解析T的类型,这里大概扯了一下Java的伪泛型,这里提到了用getGenericInterfaces得到Type,然后用这个Type去解析。

然后面试官问到了如果这里的T是List怎么办,能解析出来吗?我想了一下,表示应该不能,然后表示这是自己一个练手的东西,考虑得不够全面。

面试官表示没啥,可以理解,但是商业化项目里肯定要考虑这些。

写一个线程安全的懒汉式单例,不能用静态内部类实现,那这里显然问得是DCL+volatile,搞定

IPC相关。大概提了几种常见的IPC方式,最后还是得回到Binder,Java层的应用说得比较细,底层原理大概提了一下,没往深问。

算法题,判断一个树是不是AVL树,这个问题应该在剑指offer上看到过,这个题写得很烂。

写得有问题,然后面试官自己写了一个,让我看看有啥问题,看到了一句比较关键的话,但是没有怎么理解。

沟通了一下思路,面试官表示他那个也有问题,不过比我的更接近正解,还说这个问题不难,回去好好想想。

最后有啥要问的,问了一下面试评价,有哪些不足,给点建议。面试官说基础理论还行,动手能力还需要加强。多写代码

大牛提醒:校招跟社招的的一个区别就是,校招一定会问算法问题,社招一般不会问,所以请童鞋们在面试前刷一遍算法题,切记不要抱侥幸心理。

欢迎关注微信公众号:大牛孵化器,更多免费知识分享教程等你来领取。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,980评论 25 707
  • 【绿丝带圆梦行动 】是由何娜娜女士发起的,以唤醒全民环保意识,倡导健康生活方式。弘扬中华传统美德,复兴中国历史文化...
    芙蕖姑娘阅读 466评论 0 0
  • 当思念一个人的时候,我们是怎样的呢?我一直不是很懂。 明明在看书,上面的每一个字却只是浮于表面,什么也没有记住。 ...
    荒乱于时阅读 112评论 0 0
  • 2006年,我大学毕业,考进了家乡的一家大型国企。 起初一切还好,直到我上班第三个月的某天,发生了一件事。 当时单...
    麦肖肖阅读 945评论 4 0
  • 昨晚老陈同志(我爹)打电话给我,让我帮忙遥控指挥一下他手机往电脑上传文件,这算是我俩比较和平的一次交流,打完一...
    云梦泽曼曼阅读 486评论 1 1