admin管理员组

文章数量:1530085

素材选自:无名huster

去年秋招面试了一些公司,现在把面经和面试体验发一下,大佬们共同学习。

由于水平比较差,所以才获得几个offer(小公司不算):百度,美团,小米,华为,链家,百度外卖(后期获得头条,拼多多Offer)

职位都是:android客户端开发

最后有一些资料,是准备面试的知识汇总,数据结构,计算机网络啥的基本上都有了。嗯,自己收录、整理和分类的,还请尊重知识产出。

小米

8月29日 小米一面 (1小时20分钟)

  1. 讲一个你印象比较深刻的项目
  2. 讲一下Volley框架的实现机制
  3. BLE蓝牙的使用流程
  4. 设计模式你说下
  5. binder机制应用层面上说下
  6. View事件分发机制说下
  7. android性能优化说下(布局优化、内存泄露、bitmap压缩等等…)
  8. eventBus框架是干什么用的,实现机制?
  9. ANR和crash遇到过么?怎样解决
  10. 编写代码(给一个网址,编写代码)

输入一个n*n的正方形矩阵a,要求填充逻辑代码,将矩阵a顺时针旋转90度

8月30号 小米二面(1小时20分钟)

  1. 自我介绍
  2. 你做的这几个项目挑出一个来讲一下
  3. 步态分析器这个项目的话,你感觉核心实现是什么?
  4. 讲一下蓝牙有几种方式,你用的BLE的蓝牙流程说下
  5. 假如说你的app现在使用了一个A的第三方库,那么为了以后可以容易换成B的第三方库,你会怎样去做减少后面的修改难度?
  6. android的多线程你知道多少?介绍下
  7. asyncTask的内存泄露你知道么?
  8. 给一个网页,手撕代码

题目:一个字符串,开始可能有0-N个空格,然后在这个串中每个单词之间有1-N个空格,最后的结束也有N个空格,现在要求最后的输出结果是开始不能有空格,每个单词之间只能有一个空格,最后全部是空格的格式

一、先实现,无要求

二、空间复杂度要求为O(1),再优化

9月20号 武汉现场面三面 40分钟

  1. 自我介绍
  2. 讲一个你熟悉的项目
  3. 手写代码:一个数组中的数字,有大有小,如何用最少的+1或者-1的操作消除数组中的数字差异过大的情况,返回你的操作次数
  4. intentService了解么?说一下他的用处和原理
  5. intentService和service的区别
  6. intentService现在要求让他的任务可以并行执行,你会怎样去实现
  7. asyncTask说下主要的方法
  8. activity销毁之后,那么asyncTask如果还在执行,那么会造成什么问题
  9. activity的旋转屏幕的生命周期变化
  10. 手写代码:一个单链表,每三个节点反转一次
  11. 你有什么想问我的么?

面试体验:

小米每次面试基本上必备的就是手撕算法,so,一定要做好点准备,难度都一般,不是难的那种。另外从android的技术上来说,从我的面试经历来说都是一点即过,面试官没有多少深入的挖掘知识点。面试官都很nice,有些算法上卡着了,会一步一步的引导你。赞一个

今日头条

9月25号 今日头条 1面 30分钟

  1. 自我介绍
  2. 两个有序数组,求这两个有序数组中最大的K个数(要求时间复杂度空间复杂度较低)
  3. 对于栈这个数据结构,实现以下几个方法:push,pop,max(要求空间复杂度较低)

今日头条 2面 1小时

  1. 自我介绍
  2. android事件分发机制说下
  3. touchSlop,touchDelegate的理解
  4. viewStub,merge、include的理解
  5. java引用级别
  6. 用过什么第三方库?(用过eventBus,Volley。知道RxAndroid,okHttp等。。写过demo)
  7. 用过什么编译器
  8. 内存泄露原因(从JVM开始和他说起)
  9. gcRoot有哪些?
  10. 如何检测内存泄露,有什么方式
  11. 算法:一个有序数组,寻找k值出现的第一个位置(针对算法要求最优)
  12. 算法:每个人都有工作时间区间,现在有N个人,他们每个人分别有K个工作区间。现在要找到一个大家都空闲的时间段进行开会,那么如何来找到这些空闲时间段?讲出思路和时间复杂度,空间复杂度

面试体验:

武汉现场面,一面不是android开发面试官,应该是java的,所以就问了算法了。每个算法不是很难,但是会让你写最优,只有思路不行,必须要完整写出来。二面是android面试官,嗯,总的情况的话答下来有80%左右吧。前面都还好,最后我问他问题的时候我问他对我评价如何,然后他说我对技术不热情,问我是不是跨专业?我一脸懵逼,,理由如下:你知道目前的新框架为什么还在项目中用旧的框架?你项目中还有用到eclipse的,为什么不用androidstudio?然后我给他说:我选择框架只选择针对我这个项目合适的框架,并且框架原理相同,我知道了一个原理了其他的也就是一样的了。并且我平时也用过新框架自己搞demo;第二:我进入实验室的时候就是eclipse的项目,我是接锅的。后面的我自己搞得项目就用androidstudio了,平时demo我也是用androidstudio了,有问题么?拿着我的简历然后问我是不是跨专业?呵呵哒,算您会挖苦人。。直接告诉他,今天就到这吧,面不起我还可以躲得起。。

百度

8月24日 手机百度电话一面 34分钟

  1. 二叉树的非递归实现(前序、中序、后序)
  2. 给一个NN的矩阵,找出22矩阵的和的最大值,时间复杂度?最优?
  3. android蓝牙连接(传统蓝牙,BLE蓝牙),如何连接?
  4. JVM内存分区(每部分异常会报什么错误?)
  5. JVM垃圾回收算法(详细介绍)
  6. JVM垃圾回收器(详细介绍)
  7. https连接过程,握手过程
  8. 对称加密,非对称加密
  9. 三次握手过程
  10. android消息机制
  11. android事件分发机制

8月29日 百度二面(一小时50分钟)

  1. 讲一下你做的这些项

本文标签: 华为腾讯搜狐网易小米