百度+腾讯面经_Android

百度一面

面试中遇到的问题:

  1. MVC模式是什么意思,Model 是否能够直接与 View 进行交互。
  2. 什么是进程,如何创建进程,有几种实现进程通信的方法。
  3. 详细说了下 ContentProvider。
  4. sychronized 与 ReenLock 的区别。
  5. 出了一道关于锁的题目(知识点:对象锁和类锁)。
  6. 用过什么设计模式,说了一堆,然后叫我实现***模式(手写了静态***)。
  7. 什么是内存泄露与内存溢出,Android有哪些内存泄露,面试官着重问了,Handler的内存泄露和解决办法。
  8. 由于在说内存泄露的时候多说了下 GCRoot,就问了下 GCRoots 有哪些。
  9. Looper 的原理。
  10. handle.postDelayed() 中如何实现延迟发送的 (没用过,我只好跟面试官说如果是我我会如何实现,最后回去看了下源码,发现分析对了)。
  11. Android 的四种 LaunchMode
  12. 两种 Service 的区别及其生命周期,Service 是否是全局的(感觉考点是:访问的 Service 是唯一实例,被创建过一次,下一次再启动就不会调用 onCreate())
  13. HandlerThread 与 IntentService原理。
  14. ThreadLocal 的原理。
  15. HashMap 的原理,解决 Hash 冲突有哪几种方法。
    出了一道关于 Set 的题目,创建两个 Person 对象,存入 Set 中,请问 set.size() (考点:重写 equals() 与 hashCode())
  16. 逆序链表。(手写)
  17. 线程池 (说了输入参数、四个预置的ThreadPool 的特点,线程池的源码),面试官一直问我 SchedulerThreadPool 和其他 ThreadPool 的区别,引导说 SchedulerThreadPool 可以实现 delayed (没看过源码)。
  18. UDP 与 TCP 的区别,三次握手机制(手写)
  19. HTTP 和 HTTPS 的区别
    20 .问我面过几家公司,我只能说笔试完的公司都没有发给我通知面试 - -,考官很惊讶的说你居然是第一面。。(难道是被鄙视了。。。)

面试官很友善,不会的题目会引导你。一面问的都是基础知识,没有问 Android 框架源码、项目难点、难的算法。。。

百度二面

问题:

  1. 自我介绍(每个人不同)
  2. 讲解下你在 Github 上的项目(我做了一个网络小说阅读器)
  3. 你知道哪些设计模式,这些设计模式在Android中的使用,然后叫我写了个观察者模式。
  4. Android的 LaunchMode (面试官问这道问题的时候,附加前句是,那我问你个简单的问题,听到这句话当时感觉自己GG了- -)
  5. 举一个例子,说明你的学习能力(这个没准备。。瞎说了一通)
  6. 知道几种单例模式的写法,写一个单例模式,为什么使用这种写法。(我写了枚举的写法,然后从单例的线程安全,如何破坏单例模式进行分析)
  7. 最后问了个面试官,如何看待这次百度全面禁止 React Native - -。。。

关于第三点设计模式在Android中的使用,之前没准备,脑回路没转过来,所以我就跟面试官说,在Android的框架中用到的设计模式比较多,然后讲Glide、OkHttp、Retrofit、RxJava 源码中是如何使用设计模式的。回去想了下,Android源码中的设计模式,大概总结了

如下几点:

  1. Adapter:适配器模式。
  2. Binder: AIDL 生成的***模式。
  3. AlertDialog: 建造者模式。
  4. View的事件分发: 责任链模式。
  5. LayoutInflater: 单例模式。
  6. ListView源码: 观察者模式。
  7. File文件流: 装饰者模式。
  8. ExecutorSerivce: 对于创建 Thread 的简单工厂模式。
  9. 属性动画:策略模式

当然这只是一部分,各位牛油可以自己分析分析。。

这次面试我挖了挺多的坑,面试官都没接。只面试了我20分钟,就叫我走了。。。当时感觉自己 GG 了,为嘛啥都不问咧,问的都回答上来了呀,难道是走个过场。。。。然鹅,当天晚上居然收到了,二面通过的消息,想了想,面试都是玄学,唉。。。。

百度三面

面试的问题总结:

  1. 自我介绍
  2. 讲解项目
  3. 谈一了追求新技术的问题

项目部分:

  1. 面试官首先问我在 github 上的项目的缺点,我说了 xxx 巴拉巴拉。其中涉及到了绘制方式复杂造成视图的卡顿问题,然后我说成了过度绘制- -。然后他就问,如果在一个 xml 中每个 View 都是必要的,应该如何优化卡顿问题。(感觉回答的不太好)
  2. 由于图片加载造成了OOM问题,应该如何解决。我说了压缩 Bitmap 和使用 WeakReference,Lru。他就问如果每个图片都是必须的,并且已经压缩了。那么该如何解决 OOM,当时只想到对 Java 堆进行扩容。
  3. 用10个字说出我个人项目的核心代码 (我说了一堆,他说我没有 GET 到他的点。。尴尬,这不是我的项目么 - -,为什么我的项目的核心代码,我自己都不知道 Orz)
  4. 你的项目支持的版本支持到 Android 几,我说 6.0 的权限没有做,所以只支持到 6.0 以下。他问我为什么没做,现在都出到 O 了,你咋还没支持到6.0 咧,我说这是之后的内容,不是我非常重要的优先级。然后问我各版本 Android 的特点,如何适配。
    说我为什么研究框架的源码,我说是为了爬坑,那你在框架上遇到过哪些坑。
  5. 问我在项目中如何使用 RxJava(链式调用,线程切换,背压) ,还有冷热发射器(RxBus),说我太过推崇 Rx 系的东西,但是又对这个框架大材小用,然后问我 Rx 这个思想是从哪里来的? (猜了个微软,他说从 js 中来的)
  6. 说说你在项目中是如何使用 MVP 模式的。
  7. 说说你对 lambda 表达式的优缺点(项目中用到了),然后谈他们团队对于 lambda 的理解。
  8. 说说你对 Android O 的了解,我说完之后,他跟我说他自己也不知道。(真会开玩笑。。。)

聊天的问题:

  1. 如何推动一项新技术,在团队之中使用。我说了 xxx ,他说没有 GET 到他的点 - -。
  2. 换了个问题问我,如果团队给你一项任务,你要在一周内完成,但是如果你使用新技术最短需要在两周内完成,应该怎么办。
    反正之后都是这类的问题 - -,聊了好久。。

最后在我提问的时候,又开始聊起来了。不知道是聊天中的哪一句话打动了他,他就跟我说刚才你都没有 GET 到我的点,你现在这句话才是我要的 (???,额。。。Orz)

好多问题没有遇到过,总结下来感觉回答的不太好。。

自我总结:

  1. Android 基础要打好。
  2. 对自己的项目要十分的了解。

腾讯面试,跟以前面试的流程完全不一样,有点懵逼。。。在成都腾讯大厦面的,基本上每个人都给了2面机会,但是问的知识点比较少,所以面经就附带了,当然最后跪了。。。。

腾讯一面(30分钟)

面试官全程问项目,大概问题是这样的:

  1. 自我介绍,边介绍边画我的简历。。
  2. 说出你项目中,认为最难的项目。
  3. 项目中的难点在哪里,如何实现的。(这里说了一堆)
  4. 你项目中存在什么问题,我说了一个上下滑动卡顿的问题(自制的ListView,用来解决小说翻页问题),我当时没修复这个问题。
  5. 那你觉得可能出现这个问题的可能原因是什么,如何检测、分析。(这个问题考个人的解决方式,就不说了)
  6. 如何解决死锁,项目中遇到过死锁的问题没有。(没遇到过)
  7. MVP 与 MVC 模式

除了项目,基础问题都没问。。。

一面完,问了一个一起面试的,他说他二面大概10分钟,几个问题就结束了。

腾讯二面(10分钟)

问题如下:

  1. 冒泡排序。
  2. Java的基础类型的长度。
  3. String是否可以使用 switch,原理是什么。
  4. RxJava 源码 (我说的时候,面试官全程看别人,当时感到自己凉了。。)
  5. 功能题:如何实现一个文件的多并发下载。(这个功能没实现过,答了可能的实现方式,但是深入到下载优化的时候,没回答好)

第五题没回答好,所以最后感觉,跪的不冤。。。。总体而言,腾讯比较偏于项目。

全部评论
所以我想请教一下,mvc中model可以直接联系view吗?mvp模式我知道不可以,mvc我有点不清楚
点赞 回复 分享
发布于 2017-09-27 11:26
你官网状态有变化吗?感觉答得比我好太多了
点赞 回复 分享
发布于 2017-09-27 11:14
哥们面的啥部门
点赞 回复 分享
发布于 2017-09-27 11:11

相关推荐

吾族血脉,自吾始立铁律:凡我子孙,胆敢研习计算机之术者,当受七窍流血之刑!若见Python之书,必遭雷殛;若触Java代码,定为不孝!键盘鼠标准入族谱秽物录,显示器乃摄魂邪镜祖祠前当立戒碑:"二进制者,断子绝孙之道也!"算法者,乱我族心智之毒也!数据结构,毁我门风之刃也!倘有逆子偷装 vscode,即按祖规捆于祠堂梁柱,令其DEBUG至死不得解脱!今颁天条三则:壹)三代血亲不得报考计算机系违者削去辈分,永世称码奴贰)族中幼童须背《戒算经》"if-else咒,switch符,皆是断头术"叁)凡见子侄讨论编程者须即刻砸其电脑,焚其书籍泼黑狗血于键盘之上!太祖母口谕:"吾宁要文盲孙,不要程序员!"尔...
好吃的薯饼:姐妹这不是我们计算机系吧,我们计算机系的都在言情小说里当黑客大佬,各种竞赛拿奖拿到手软,公司系统道路监控随便入侵。身体线条非常优美,挺拔的站姿十分端正,给人以强壮有内涵的感觉。脸庞轮廓深刻,五官分明透露着对太阳底下最光辉的职业的向往和坚定,尤其是那双深邃的眼睛,写满了对代码和计算机系统的热情和无限的活力。我们计算机系是天之骄子、明日之星,人手一个博士学位不然高中电脑老师都当不上。组会的时候,面对导师和同事的疑难问题,也能够回答自如。我们总是把高高的发际线当做荣耀的象征。妈咪这不素我们计算机系吧,集美集帅怎么只会写hello world?
点赞 评论 收藏
分享
没有offer的呆呆:日常和暑期都投试一试,3月份机会挺多的
点赞 评论 收藏
分享
我将逐步学习姐妹的语言艺术
一片特立独行的面包:这攻击力
点赞 评论 收藏
分享
评论
点赞
51
分享

创作者周榜

更多
牛客网
牛客企业服务