2016秋招面经(蘑菇街+BT+网易杭研+CVTE+唯品会)

作者:YK
链接:https://www.nowcoder.com/discuss/3206
来源:牛客网

CS 本科生,大三寒假确定方向, Android 学习时间 1 月至 9 月,无编程功底,无算法竞赛经历,无一线互联网实习经历,无国家级奖学金。

         希望这篇面经能给有同样起点或者同样经历的同学,带来帮助。

面试内容(岗位均为 Android 研发):

一、面试时间:

CVTE 7.28-8.28

网易杭研 8.10-9.30

腾讯校招 9.16&9.18

唯品会校招 9.16

百度校招 9.18-25

蘑菇街 9.30&10.1

腾讯 10.19-10.23;

二、面试方式:

 

 

CVTE

网易杭研

腾讯

唯品会

百度

蘑菇街

腾讯

一面

电话

电话

现场

现场

现场

电话

电话

二面

电话

视频

现场( X

现场

现场

电话

电话

三面

电话

电话

 

现场

现场

电话

电话

四面

现场

null

 

null

null

null

 

 

三、过程题目和技术点:(蓝色为交流环节我问他的问题,前后顺序按面试时间

CVTE

一面:

1.       自我介绍

2.       项目点为什么要用 view 不用 fragment ?同样 fragment 可以解决缓存(用了 view ,并且设了 map 作为缓存,为了模拟 activity 栈重制了新的栈来实现相同的回退功能,需要处理连续点击和多次点击的问题,还需要解决连续点 view ,缓存增大而 oom

3.       用了什么设计模式?为什么要这么用?(举例了观察者 + 工厂)

4.       谈一下 Collection 包: hashmap 底层实现,用了什么方法解决 hash 冲突(基于 jdk 版本),具体是如何实现( jdk1.5 链表头插还是尾插),为什么不安全?如何变得安全( concurrent 包下集合类), concurrentHashmap 实现原理是?

5.       Executor 框架说说你的理解?

6.       结束一条 Thread 有什么方法? interrupt 底层实现有看过吗?线程的状态是怎么样的?如果给你实现会怎么样做?

7.       Io nio 有没有了解?

8.       现在需要在四大组件中传数据?如何传,方法有哪些(需要自己再具体说什么情况)?

9.       缓存算法除了 lru 还认识哪种?

10.   Java 中有内存泄露吗?是怎么样的情景?为什么不用循环计数?

11.   ANR 产生原因?怎么定位?

12.   ContextImpl 的源码使用的设计模式?为什么你认为其中有外观?

13.   评价一下我的表现?有什么技术点需要补充?

二面:

1.       上次一面的时间是什么时候了?(半个月前)

2.       做的最深的项目?解决了什么问题?

3.       情景题,在一个 app 中,只有在一张 activity ,所有功能业务逻辑在里面实现,现在报 ANR ,你会怎么做?(代码层面:耗时操作( UI 、网络、数据库),工具层面: trace crashHandle

4.       不停在 new 一个很大数组,初始化它,然后又把 reference null ,这样子手机会不会卡?(这个问题还没很深研究,当时答了内存抖动 +stop the world

5.       Jvm 自动内存管理、如何实现对象的自我救赎?

6.       Android 系统启动流程?

7.       有没有看过业界 APK 反编译源码?

8.       平时看什么书?

9.       评价一下我,技术团队有用到什么开源框架?有没有自己放出开源?

三面 HR

1.       有点起了我老底的味道,我还以为是来查水表。

 

        

四面(现场,这是唯一一次有 3 个面试官来面,其中一个是一面的面试官):

1.       描述项目,当时是用了什么架构?还认识哪些架构?如何改造?

2.       当时为什么要用 Observer

3.       obverser uml 类图 + 代码实现,原生 jdk 中观察者模式有哪些缺陷?

4.       还有用了哪些设计模式?(工厂)

5.       有见过其他的设计模式吗?(当时说了一个责任链和重说一面的 contextimple

6.       实现一个链表的插入( 4 分钟计时)

7.       判断链表有环

8.       单例模式 DCL violate 起什么作用?为什么要 sync .class 而不是 this ?( 3 分钟计时)

 

 

网易杭研:

一面:

1.       自我介绍

2.       Android ClassLoader java 中有什么关系和区别?

3.       熟不熟 jvm ,说一下 Jvm 的自动内存管理?

4.       语言基础, String 类可以被继承吗?为什么?

5.       Final 能修饰什么?(当时我说 class field method ,他说还有吗?然后又叫我不要在意,后来回想起,应该是问到我在参数里面要不要用 final ,接下来是因为匿名内部类)

6.       Java 中有内存泄露吗?(先说本质,再结合 handler+ 匿名内部类)当时如何分析的?

7.       描述下 Aidl ?觉得 aidl 有什么缺陷(这里在这个问题上回答有欠缺)

8.       评价一下我,如果顺利进网易,需要往技术栈加什么点尽快投入业务?

二面:

1.       用过什么开源,举一个例子?( volley

2.       Activity 生命周期?情景:现在在一张 act1 点了新的 act2 ,周期如何?

3.       Act launchMode ,有没有结合项目用过(自己的程序锁和微信的 PC 端登陆对比,不过我现在又发现,应该大约估计可能是动态加载的一个缺陷,如果有找到相关信息,请务必跟我说。具体问题就是,当在 PC 端登录时, Android 终端的微信会跳出,即使 wechat task 不是在 fore ,当按下确认,返回的是 wechat ,而不是自己先前的 app

4.       View 的绘制原理,有没有用 canvas 自己画过 ui

5.       以后想做 Android 什么方向?(中间件 +SDK

6.       怎么看待前端和后端?

7.       如果学前端会如何学?

8.       优缺点?兴趣?

9.       想不想来杭州?

10.   评价一下我?往技术栈加什么?

三面 HR :常规问题( 10 分钟,这个男 hr 是最爽快的)

1.  为什么想来网易?

2.  有投其他公司吗?

3.  网易最吸引你的是什么?

4.  想来杭州吗?

5.  评价一下我?

        

 

 

腾讯(被挂)

一面:

1.       自我介绍

2.       项目描述

3.       如何保证资金流安全?(这里没答好,直接把我挂了,先前并没有考虑过这个问题,面了这么多次也没有被问这个点,导致雪崩)

4.       Oom 是如何解决?

5.       除了软引用还知道什么引用?

6.       Jvm 自动内存管理(什么时候触发 gc )?

7.       有什么要补充:(跟他讲了动态加载还有一个底层源码)

8.       根据面试过程,有什么建议给我?(我当时就觉得很有可能就挂了,所以就问建议)

 

二面(一面之后当晚我查到被挂,心态没有调整好,但是 2 天后又把我复活了,然后又挂了):

1.  自我介绍

2.  你是怎么准备面试的?

3.  做过什么项目?项目思路是?

4.  平时有什么兴趣?

5.  自己写的工具类和 uil 相比,如何?

6.  后续就是讲了他自己对移动端发展的看法,受教很多。

7.  现在有个机会可以对刚毕业的自己说些话,你会跟他说什么?

 

 

腾讯 SNG:

一面:

1.       自我介绍

2.       动态加载主要问题

3.       插件化

4.       Assetmanager 获取资源原理和资源获取原理

5.       项目 Oom 异常解决方案 + 用户体验优化方案

6.       Touch 传递机制 +listview 滑动冲突

7.       Volley 底层实现

8.       为什么不能用 volley 请求大数据

9.       后续流程如何走?

 

二面:

1.       自我介绍

2.       android 学习时间

3.       为什么不考研

4.       Smali 语句学习情况 + 反编译

5.       如何捕获插屏广告?如果广告是嵌入在应用主流程内如何处理(只讲了如何捕获 launch 下的 activity ,嵌套在主流程逻辑内的想不到,问了提示也没回答)

6.       Jvm 的自动内存管理

7.       Jvm 中软、虚引用的区别

8.       Java nio 的认识

9.       Tcp 三次握手, tcp udp 的区别

10.   Volley 底层实现 + 设计模式理解

11.   Imageloader 缓存策略

12.   后续流程如何走?

13.   sng 目前在 android 端遇到什么问题?(他回答是机型适配问题)

14.   对我的建议是?

 

HR 面:

1.       之前参加校招吗?

2.       这个月又如何准备?

3.       谈谈优势?

4.       腾讯哪里吸引你?

5.       以后会在什么部门?是不是一二面面试官带我?

 

 

 

 

 

唯品会:

一面:

1.       项目如何解决 oom ?响应速度是怎么优化?电量消耗如何优化?

2.       描述一下 Aidl android ipc ?( binder 机制没跟他讲得很深)

3.       屏幕适配使用的方案?有没有辅助的工具帮助?( hyviewer

4.       如何分析内存泄露?(代码 + 工具 traceview+mat

5.       ANR 呢?(我忘记了 trace

6.       View 树绘制?如何优化布局?

7.       事件传递原理?

8.       uil 的框架如何设计?有没有用过 glide ?(结合了 fresco 的分析)

9.       Volley okhttp 底层实现(也讲了 okio ),为什么说 okhttp 高效?

10.   Listview 的优化(同一布局,左为 bm ,右为 text )?

11.   Apk 瘦身可以关注什么点?(这里忘记了说 so 库,然而他也不会)

12.   评价一下我

 

二面:

1.       这里的项目的描述的 xml ,你项目不是 native 的?

2.       有没有接触 hybrid webapp ?怎么看待?

3.       有用到什么设计模式吗?开源框架呢?

4.       HotFix Xposed 的一些小应用(没有深入,只是讲了动态加载原理和需要解决的问题,也说了 dynamicloadApk multi 分包还有 Xposed 中的 hook

5.       以后想如何发展?

6.       唯品会会如何培养新人?是不是由你带我?目前唯品会用到什么技术点跟我技术栈相关?

 

三面 HR 50+ 年纪面试官,素质差,不尊重面试者,具体可以搜知乎):

1.       对公司的看法?

2.       为什么主页不设搜索栏?

 

 

 

 

 

百度:

一面:

1.  自我介绍

2.  讲一下动态加载技术点?

3.  对目前移动圈的看法?

4.  android 的开始时间?

5.  适配优化屏幕适配接触到什么方法?

6.  Binder 机制(只深入到 framework

7.  View 树绘制 + 事件分发

8.  海量字符串 ( 他给我的样例如下: ABCDE,ACD,BCDF,EF) ,如何插入数据库使冗余度最低? Trie + 不知道什么遍历,第一次见,数据库存的是 3 个字段,字母,该字母第一次遍历的序号,该字母第二次遍历的序号。可以做到时间复杂度 O N ),至今都没想出来……如果有人看过类似的题请务必告诉我。)

二面:

1.       不用除号实现除法(一开始需要考虑小数,后来面试官说降低难度先整数,然后优化大数的情况,确认了两次思路)

2.       Contextimpl 源码,几种 context 的区别

3.       如何实现通讯? Binder 机制(我只将了 aidl framework 层面,面试官把 /dev/binder 也讲了,受教,被人教做大人,后来吹比发现他是做 C 驱动开发)

4.       一个数组,找出只重复一次的元素,并且返回下标是最小的。时间复杂度要求 O N +O 1 )(一开始只想到了 O N +O N ),后来问了提示,可以实现到 O N +O 1 ),但是空间复杂度上去了,然后他给出最优解)。

 

三面:

1.       高校教育和培训班看法?

2.       C++ java 的区别?后来我转到面向过程和面向对象,结合 uil

3.       Ios 有接触过吗?学习成本问题吗?

4.       Android 项目简单描述非技术角度?(动态加载)动态加载的优点,面向开发者和面向用户角度?其中我答到了 65535 方法会爆,然后他说小伙子太年轻, naive

5.       以后有什么规划?

6.       高级工程师所需责任?

7.       了解 android 什么新技术?( hybrid ,这里答得不好,应该往移动端统一角度来答)

8.       N 根绳子,质量不均匀,并且燃烧速度不均,但是每一条烧 1h ,现在需要测量出 1H+15min 。( cracking 改题)

9.       优缺点

10.   兴趣

11.   最后给我看了一下他对 65535 方法数的研究,我也是醉了。

12.   个人点评?负责哪个部门?是不是以后你带我?

13.   百度 200 亿 O2O 你觉得前景如何?会对你带的部门产品线有什么影响?

14.   如何看待今年互联网的资本寒冬?

 

 

蘑菇街:

一面:

1   自我介绍

2   在项目中为什么要用动态加载?最大的问题是什么?怎么解决资源管理问题(这里我一直以为 AssetManager 是服务,然后又被面试官教做大人,简单来说就是装逼然后失败了)

3   Binder 机制说一下(由 application framework kernel 基本讲了一下要点,但是电面实在是很影响表述没有画图,他最后也听得很蛋疼)

4   Android 源码看了多少 G ?说一下(举了 contextimpl

5   屏幕适配接触到什么方法?

6   java 内存泄露是怎么样的?(本质 +handler 例子)

7   Handler 机制?

8   情景题,把 handler static ,里面需要对一个 view 更新,会不会内存泄露?(可达性分析)

9   UI 接触得多吗?有没有用过 canvas 画过图?

10.   事件分发?如果有一个 interr ,会……(这里我听不是很清楚,电话信号,然后我就把整个事件分发原理说了一下,然后他说我讲错,我也是醉)

11. 个人评价?会不会有下一面?(问这个因为觉得装逼失败,非常有可能被刷,他告诉我可能一周后,结果二面就马上国庆 1 号面)

 

二面:

1.       自我介绍

2.       android 多久?

3.       怎么学习?

4.       项目里面遇到什么难题,选一个讲一下?(动态加载,还有一面被教人教做大人的过程)

5.       平时有什么兴趣?

6.       Volley 底层实现?( okhttp 没问)

7.       自己写的图片加载工具类谈一下?(结合 uil 谈了一下)

8.       有没有了解新技术?了解到哪些?讲一下?( hybrid+react+ 个人看法)

9.       动态加载还遇到什么困难?(结合了 dexposed 其他一些热补丁聊了一下)

10.   个人点评

11.   蘑菇街目前 android 团队架构

12.   目前有哪些 android 技术难题所遇到过?

13.   目前用了哪些开源?我还需要接触哪些?( hotpatch + xposed ,个人认为主要还是受手淘影响,估计内部框架也是比较类似)

14.   怎么培训新人,以后是不是你来带我?

 

三面:(个人感觉是真的专业 HR

1.       自己介绍面向非技术

2.       谈一下优缺点,为什么有这个优点?如何体现?

3.       为什么想来蘑菇街?

4.       目前手头有多少 offer ?薪资?

5.       蘑菇街跟百度网易对比最吸引你?地点杭州有没有问题?

6.       蘑菇街 offer 会不会调岗?

7.       怎么带新人? mentor 制?

个人资料
bjchenli
等级:8
文章:260篇
访问:22.0w
排名: 3
上一篇: 百度2010校园招聘web前端开发面试题(含参考答案)
下一篇:腾讯2016校招技术岗面试经历及总结(终面通过)
猜你感兴趣的圈子:
笔试面试心得
标签: 蘑菇、电话、android、现场、二面、面试题
隐藏