请注意,本文编写于 2685 天前,其中某些信息可能已经过时。
Android岗位,只面了这几家,过了头条,阿里,腾讯。美团挂
美团
美团面试问的还是很全面的,项目,Java,Android,计算机网络,操作系统全都覆盖到了.
- 自我介绍
- 技术规划
- 学习途径
- 介绍一个挑战最大的项目
- 常见的排序算法,实现思路
- 多线程,同步机制,synchronized底层原理(代码块和修饰方法的机制的不同,monitorIn,monitorOut,对象头信息)(这个问题答的不好。。修饰方法的时候当时没记起来)
- volatile关键字,happen-before原则
- 线程的状态有哪些,关系和区别
- 进程调度的算法,优点和区别
- 虚拟内存是啥?为啥会有虚拟内存,然后面试官问页面置换算法
- LRU算法,LRUCache实现
- TCP协议的连接过程,断开过程,为啥握手是三次,挥手四次(握手的时候服务器合并一个同步和确认,这个当时没答好)
- IP协议,和TCP的关系
- DNS协议原理,迭代,递归。DNS劫持怎样避免
- List Set Map区别,ArrayList,LinkedList实现,HashSet,TreeSet实现,HashMap实现。(说到我绝望。。。最后说到红黑树,说不下去了)
- 类加载的过程。。。(加载,验证,准备,解析,初始化。。。)双亲委托机制
- 垃圾回收机制。(怎样确认对象可回收,回收的算法,对象的升级,分配担保。。)感觉这个问题已经是面试必问了。。
- 讲两个Android你最熟的知识点(当时不知道说啥,然后面官说,比如消息机制啊,事件分发机制啊。。。然后我就说了这两个
- 你有没有啥想问我的
全程70多分钟,面完话都说不出来了。。。问题都很常规,没啥特别难的。然后面试官说他这里是过了,让我等HR联系。。。然后就再也没有消息了
阿里
一面
面试官感觉不是搞Android的,Java问的也不多
- C++内存管理机制(嗯。。还记得点点,对比Java的说了下)
- 你设计一个服务端响应算法
- Android适配 怎么搞,说错了一个地方,面试官好像不知道
- Java的容器类,List,Map具体实现
问了一些底层的东西,记不得了
记不得了。。。
二面
也不是做ANDROID的
- 自我介绍
- 实现经历
- 学校经历,做了啥
- 写算法,说思路,具体啥忘了
- 推送方案的实现,有哪些想法
- 怎让设计心跳机制,微信的设计了解过吗
- 记不清了
三面
- 实习经历,做了啥
- Android内存优化,MAT分析,dump堆栈信息,anr分析
- AOP的实现思路,ASM操作字节码,说下饿了么的lancet
- 线程死锁,场景分析,很烦。。。
- MVP,MVVM,MVC(缺点优点)
- retrofit 实现,动态代理
- 类加载机制过程,双亲委托机制,怎么绕过
- git rebase,merge,分支区别
- 最有调整的项目
- JVM,DVM区别
- JVM操作码?一脸懵逼
- 生命周期原理,产生的原理
- 设计淘口令
- 记不得了。。问的很难,面试官很牛逼
四面
很简单。。
- 自我介绍
- 项目经验
- JVM锁的实现机制,锁代码块和锁方法
- git cherry-pick
- 为啥不关cusor会内存泄漏(Native分配空间,垃圾回收回收不掉)
- databinding的设计,Android怎么实现的(注解生成器)
- 还有些常规问题。。记不得了
- 和面试吹逼,聊人生
头条-抖音
一面
一个问题没问,手写两个算法题
1. 两个数组,判断一个是否是另一个的子数组
int[] src = {1, 2, 3, 4, 5}
int[] data1 = {2, 3, 4}
int[] data2 = {1, 4, 5}
data1 是子数组, data2不是
2. 一个数组,前面部分是 若干个负数,中间部分是若干个零,最后部分是若干个正数,求最后一个0在数组中的位置
二面
- Http 状态码哪些,含义
- Http 请求头
- TCP三次握手的原因,为啥一定挥手是四次
- 拥塞控制,流量控制
- DNS的工作原理
- Java的类加载机制
- 事件分发
- 滑动冲突
- 热修复框架原理(几大套路,顺手喷了一手美团的Robust),代码修复,资源修复
- 记不得了
三面
- 介绍项目
- Handler源码,实现,扯了点底层C++
- 进程线程区别
- 最近看哪些书
- Binder底层
- EventBus实现
- 学习新技术的途径
- Activity生命周期,各个周期做什么
- 手写代码吃苹果,类似青蛙跳台阶。。。
- 手写代码判断一颗二叉树是否是平衡二叉树
记不得了
即刻App
Android一些常用Api、Git炒作
腾讯IEG-TIMI
一面
腾讯最开始找了网校的一个学长内推,但是提前批都没人捞简历,面都没有面过,查状态就已经是不合适了。本来都准备放弃了,接到了IEG一位面试官的短信,然后约好了面试。总体感觉没啥难度,应该类似于阿里的简历评估面吧。
- 实习时间
- Android四大组件是啥?Activity的生命周期,几种状态的区别,问的很细很细
- 启动模式
- ActivityContext , ApplicationContext 的区别
- startService bindService区别
- 优化内存的意义
- View的绘制流程(扯了点底层渲染),流畅度。60帧是真么来的,16.66ms,渲染周期
- 内存区域,Java垃圾回收机制,Android组件回收顺序
- 四种引用类型,区别,作用
- HashMap源码实现,1.8优化,扩容算法
- 常用的设计模式==> Android中的应用,结合源码扯了下
- 聊项目,掌邮,开发流程,日活,Crash率
- 启动优化
- 数组找是否两数和为某一值,秒杀。。
- 一个阿拉伯数字你要转换成汉字,算法,边界条件。eg:1001-->一千零一
- 比赛项目,写过后端?Java:Spring,SpringBoot,说下AOP,Python:Flask
二面
- 自我介绍
- 实习经历,做了啥
- 掌上重邮,网校经历
- 从浏览器输入一个url,回车,发生了啥,详细说说(这个问题说了估计15分钟吧,http,ftp,dns,tcp,ip,缓存,浏览器渲染,服务端渲染和浏览器渲染的区别。。。)
- 弱网下,网络请求有问题,有啥问题,分析下
- 感觉你写过前端?说下知道的框架,Vue(直接说知道没咋用过)React,ReactNative的实现原理,和weex对比,diff算法
- 会去了解新技术吗?举点例子,Kotlin协程,AAC
三面
- 最能代表你技术的项目,最难的部分
- 掌上重邮客户端怎样保证课表数据有缓存的同事,展示最新数据
- 图片下载用了开源库,讲下原理,优点缺点
- 学习成绩,哪些学科学的最好
- 怎么学习,举几个体现你热爱技术的例子
- 什么时候接触Android,学习途径
- 怎么平衡网校工作和学习的时间
- 为啥没参加ACM
- 拿了哪些offer,怎么选择
- 然后闲聊20分钟,帮我分析了一波offer。。。。
- 会联系hr给发offer,希望来腾讯
总结
- 基础很重要,操作系统,计算机网络
- 大公司不会问你api的,都是源码实现,或者场景分析
- 多看底层的东西
一定要有亮点:
- 某一方面的技术牛逼(Android底层啊,音视频开发、架构设计、跨平台框架(RN,WEEX...))
- 牛逼的开源库(Github高Star的项目,千万别刷。。有人因为这个直接挂)
- 牛逼的学习成绩(国奖,面试官还是很看重成绩的,成绩好说明潜力不错,哎。。。)
- 互联网公司的实习经历
- ACM获奖经历,别拿校赛出来说事了。。有个国奖就算你开发能力不怎么样甚至很差都无所谓了
- 博客(很有影响力的那种)
- 互联网公司的实习经历很重要,大部分面试官会和你聊这些
- 项目经历,一定要是自己做过的,不然被问哭
- 沟通能力,学会引导面试官,千万别装逼,会死的
- 面试结果 =
技术实力 * 0.4 + 运气 * 0.3 + 沟通能力 * 0.3
。 不是每轮面试运气都好,提升技术实力和沟通能力是最重要的
1 条评论
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com