总结:问题很少,每题都很致命……而且是没有答案的那种,你得自己思考。这个时候可以许愿一波hr面了。
4月1日更新:
hr面(20mins):
0、期望工作地点
1、事业群介绍
2、为什么想要留在北京
3、为什么不读研究生
4、如何看待Android开发,为什么不接触IOS呢
5、刚开始工作压力会很大,你有没有想过怎么处理压力呢
6、反问
7、有没有健身房
8、有住房补贴或者房源推荐吗
9、招多少个Android应届生呀
10、应届生培养方案
总结:没有谈薪资,这是唯一的风险……还是希望能收到OC吧。
好快啊,隔天直接offer。有点爽,透露一下,有三个月签字费。
11.美团Android一二面面经
该面经帖作者:初亦泽(2021届实习)
该面经帖发布时间:2020-04-23
2020/04/23更新。今天二面,部门leader 面,估计上次评价挺好的,这次只手撕一些简单的代码,加起来四十分钟吧。
二面面经
1、你觉得你上次面的怎么样(还行吧)
2、随便写一个二叉树的遍历(前序递归、前序非递归)
3、打印二叉树左侧第一个元素(层序遍历,打印第一个元素)
4、判断一个字符串在另一个字符串里面的出现次数(其实写到最优了,但还是和面试官讨论了下如何优化)
5、看你代码写的挺好啊,平常经常练吗?(平时就喜欢写代码)
5、手上有哪些offer?如实说了一下,然后吐槽了下IOS…。
6、反问环节(你们使用哪些语言呢,Android开发。)
7、面试官介绍部门,说是比较核心,然后加微信。
一面面经
面的美团Android实习,总体上来讲比较简单。
1、简单的介绍了自己的两个项目
2、Handler机制,详细讲了Handler、Looper、Message、MessageQueue、空消息时的阻塞、IntentService、HandlerThread、AsyncTask的实现
3、进程间通信机制,讲了线程和进程的区别(是否有独立地址空间,怎么实现独立地址空间),Android里面常用的进程间通信方式,包括基于Binder的(ContentProvider、AIDL、Messanger)和基于文件的(普通文件读写,sp)和基于网络的(Socket)
4、详解Binder机制,Binder通信的几个角色,实现一次拷贝的函数mmap。
5、OkHttp相关,包括它的优势,责任链模式中各个拦截链做了什么。
详细讲了OkHttp的桥接拦截链和缓存拦截链:https://blog.csdn.net/qq_23594799/article/details/105478769
6、由上面引申出http的四种缓存管理方式,讲了HTTP的304状态码
7、OkHttp的dispatcher,异步请求,同步请求
8、LruCache实现方式,包括底层结构,数据的插入删除为什么是O(1),提到Gilde的软引用、OOM上面
9、RecycleView的缓存机制,四级缓存,然后又说ListView两级缓存,RecycleView的局部刷新机制,最后讲了它的用法
10、手撕打印素数,秒了,在我博客里有:https://blog.csdn.net/qq_23594799/article/details/105168841
11、反问环节(虽然讲的很多,但我讲的比较快只面了25分钟,问题全部答上来了,还以为没HC凉了,试探了下问问自己还需要提升的地方、如果入职有培训吗?然后说联系二面)
12.美团Android一面二面面经(已收感谢信)
该面经帖作者:IuSpet(2021届实习)
该面经帖发布时间:2020-04-21
美团一面
自我介绍
编程题,用选择排序对链表进行排序
题目很简单,但是把 NULL 写成 null ,找了很久的错
询问项目相关经历
我的项目主要就是课程的大作业,问了计网和编译原理的,这些写的比较近,基本能说上来;问java的就完全没印象了,因为用的Swing,而当时觉得Swing是过时的东西,也没认真学。面试官说Swing那一套和android很像,精通了学android就非常简单
浏览器输入URL到产生页面的过程
解析域名,tcp连接,http请求,返回html页面,请求其他资源
断网的情况下也会有页面,为什么?浏览器的缓存是怎样的
只知道有缓存,浏览器缓存完全没了解过。
死锁
死锁的产生条件、避免方法,正好面试前看了一遍,自我感觉说的比较完整
进程调度
给面试官说对各种调度有印象,但是没法清楚的梳理出来,面试官也没继续问我
数据库事务
这个不会,跳过了
在自我介绍阶段也说了Android和Java还在学习阶段,所以没问相关问题,也象征性的问了下有没有看过view的源码,是否了解类加载机制
9.反问,问了一些Android相关的问题,如对新版本的学习、对kotlin的态度
美团二面
算法题,两个链表相加
能想到一些做法,但都很麻烦,就和面试官沟通了下,让我按照从最高位一一对应来做加法
我思路是先用一个链表储存不考虑进位的结果,之后再用递归的方式解决所有进位,写完后也没提交就给面试官说完成了,他简单问了下我思路,也没细看
面试结束后发现bug特别多……变量名不一致,循环条件也错了,递归的时候表达式和顺序也都错了,就很离谱,改了20分钟才跑出面试官要的结果
线程和进程区别,切换代价哪个大
我回答在以前的操作系统上,进程是调度单元,也是操作系统分配资源的基本单位;但在现代操作系统上,进程更类似一个容器,提供运行所需的资源,线程是调度的单元,切换到别的进程中的线程,就会导致进程的切换。还提到了通信方式的区别。切换代价自然是进程大,线程只要切换程序计数器等几个寄存器的值,进程有整个进程控制块需要切换。
进程间的通信方式
共享内存、消息队列、管道
tcp三次握手四次挥手
这个我从服务端和客户端创建socket,调用 connect 系统调用开始,叙述了一遍内核创建socket并放入两个队列的过程;四次挥手对应 close 系统调用,一方调用后会发出 FIN 请求,收到 ACK 确认,不再发送数据,双方都调用后就是四次挥手
对于面向对象的看发
这个也没细想过,虽然平时写代码的有一些突然的明悟“啊,原来这就是面向对象“,但这块我觉得说的还是有点乱。谈了面向过程需要时刻管理所有变量、状态,面向对象将这些操作封装成一个整体,就不用关注底层的操作,只需要关心自己这一层。
对于多态的看法
这个和上一题类似,我也有点不知道从哪说起。就先举了一个多态的例子,谈到底层方法提供者就不用关心传入的参数具体是什么,只要用接口或抽象类约定好就行,上层调用时放入满足要求的对象就行,便于解耦
平时空闲时间做什么
我就实话实话,说会打游戏、和同学去打篮球、晚上会去健身房,当然有时候也会去图书馆,或者自己找算法题做(后面问面试官评价,他说这里他比较失望,空闲时间我没有把学习放第一位)
因为我android基础差,问我如果给我一个比较困难的任务,我如何去完成
我回答说先请教这个任务会用到哪些方面的知识,下去后我会对这些知识有一个最基础的了解,然后去看一些demo中如何应用,之后就开始自己解决任务
和同事之间产生分歧怎么办
我会和同时认真分析问题,求同存异,找出具体的分歧点,然后一起讨论分析,最后形成一个统一的观点
对于加班的看法
如果是我自己的工作没有完成,我愿意付出额外的时间去完成。但如果是其他方面的任务,我会具体考虑。
反问环节。一面的时候和面试官聊了很多Android方面的问题,这次我就问的生活。我问了他平时工作压力如何,公司的娱乐设施平时会使用吗。对我这次面试的评价。
一二面隔了一周,针对java我认真学了好几个知识点,结果面试官完全没提相关问题,反问聊天时我透露出希望他问我一些技术上相关的问题,他说他没有针对某一点问,一直随便挑着问,想考察我的知识面咋样,看一看平时是否有这些积累,我一想自己基本都答上了,还挺高兴的
结果
因为面试官问的都是很基础的问题,问面试官评价,也是不错,只对我日常空闲时间没有第一时间学习不满意。二面完还挺乐观,问面试官什么时候有结果,说是下周一二。接着在第二周周六收到了感谢信
总结
第一次面试,也没怎么准备,尤其是对于Android和java,一面给了面试官完全不会的印象。面试官说帮我把这个标注上,二面就完全没问我java,android的问题。最后没过,感觉和这个关系也比较大
13.美团Android实习三面面经(已口头offer)
该面经帖作者:虚淮(2021届实习)
该面经帖发布时间:2020-04-16
4.10 一面
一面大概一个小时左右,问的问题偏向于基础这一块,也有问到简历上的项目。
静态内部类和双重检验两种单例模式的差别
Object类有哪些方法
面向对象的理解
封装是怎么样的
父类的private方法,子类重写了,调用到谁的方法
接口和抽象类的区别
泛型能不能动态获取类型
HashMap的put过程
HashMap为什么要扩容
HashMap的线程安全问题
Synchronized的锁升级
volatile的作用
类加载机制
JVM内存分布
JVM垃圾回收
RxJava处理异常
RxJava的flatMap操作符
为什么用MVP
handler消息机制
handler的postDelay时间精确吗
线程池有用过吗
图片框架的缓存和内存复用
事件分发
滑动冲突
知道什么排序算法讲一讲
团队的git,分支,冲突
讲快排思路,手写快排
4.13 二面
项目中的难点说一说
滑动冲突
HTTPS可以抓包吗
HTTPS为什么安全
怎么验证https的证书的合法性
写一道算法题:
「打字」:https://www.nowcoder.com/practice/7819ebf1369044e5bee2f9848d9c6c72?tpId=110&&tqId=33481&rp=1&ru=/activity/oj&qru=/ta/job-code/question-ranki
二面的话感觉偏项目,项目问的比较多。最后面试官介绍了一下部门的情况。
4.14三面
项目中的难点解决
自定义View的方法
事件分发机制
Handler原理
设计模式了解哪些
内存泄漏和内存抖动
JVM类加载机制
JVM内存分区
JVM垃圾回收
集合了解哪些
LinkedList和ArrayList的区别和选择
写个算法题
通过先序和中序数组生成后序数组
写个快排
成绩怎么样
平时的时间怎么安排
平时怎么学习
现在有没有面其他公司,流程进度怎么样
有什么问题想反问面试官的
4.15 HR电话通知
好像没有hr面的流程,hr直接给我打了个电话,介绍了一下实习的情况、实习的薪资福利,简单问了一下什么时候能去实习,然后就口头offer了。
14.美团安卓面经(已offer)
该面经帖作者:cqupt的鶸(2020届春招)
该面经帖发布时间:2020-04-12
Lz笔试情况:AC两道,第三道66% 🌚,第二天被捞起来面试了…
面经中的问题不分先后顺序,内容大概如下:
技术一面:
1.生产者消费者模式(手撕代码)
2.wait 和 sleep的区别
3.String、StringBuffer 、StringBuilder的区别
4.String a = “abc” 和 String str = new String(“abc”) 的区别
5.谈谈四种引用
6.HashSet和HashMap的关系
7.HashMap与HashTable的区别
8.ConcurrentHashMap知道吗,ConcurrentHashMap在jdk1.8之后的优化
9.重写和重载的区别
10.谈谈Activity的四种启动模式,SingleTop和SingleTask启动模式的应用场景
11.图片的三级缓存是怎么做的?
12.Service的两种启动方式以及有什么区别
13.如何在Activity和Service进行通信
14.谈谈本地广播
15.binder机制
16.Handler消息机制,子线程可以创建handler吗
17.View的绘制流程,MeasureSpec(MS)知道吗?如何确定一个View的MS?那DecorView呢?
18.OkHttp的源码讲解,它涉及哪些设计模式
19.为什么TCP要三次握手,两次不行吗?
20.TCP与UDP的区别,OSI五层结构
21.死锁的四个条件
22.操作系统中页面置换算法
23.线程的所有状态
24.synchronized关键字(选择题,问题关键在于synchronized锁住的是哪个对象,针对普通同步方法和静态同步方法)
技术二面:
1.数据库的范式
2.数据库中事务的特性
3.用过的设计模式或者是安卓中遇到的设计模式
4.责任链模式有哪些优势
5.实现一个单例模式(写的是DCL)
6.DCL为什么要两次判断null呢?为什么使用volatile?
7.在浏览器输入一个网址到网页显示出来有哪些经过
8.DNS如何解析域名
9.HTTPS与HTTP的区别,HTTPS为什么安全
10.GC过程(判断对象是否存活,GC算法)
11.知道哪些数据结构,红黑树的特点
12.做过的安卓性能优化
13.内存泄露检测工具leakcanary的原理
14.RN开发和原生开发的区别
15.线程池的参数和工作流程
16.IntentService能用bind方式启动吗?IntentService的原理
17.MVP MVVM架构
18.简历上的问题(RN中JsBundle增量加载实现)
19.你觉得在实习公司有哪些很重要的收获?
20.算法题:两个队列实现一个栈
21.HashMap的hash算法和扩容机制的原因
技术复试:
复试阶段没有问多少技术问题,大多聊的是如何学习安卓的,看过哪些书等等(后来发现面试官是项目leader)
15.美团安卓一面
该面经帖作者:牛客530157609号(2021届实习)
该面经帖发布时间:2020-03-31
第一题:算法,链表的选择排序,问了时间复杂度 O(n*n)
浏览器输入网址到界面显示,中间经历的过程
如果断网了,却还能刷出页面,为什么
TCP滑动窗口
指令集
讲一下hander和IPC机制,looper会消耗系统资源吗?
事件传递,如果scrollView嵌套listView,如果listView滑到底部后,下滑事件怎么处理
数据库事务 (不会)
16.美团安卓一面凉经指南
该面经帖作者:backer201909111947505(2021届实习)
该面经帖发布时间:2020-04-09
同很多人讲过的一样,基础知识真的很重要,毕竟美团面试我答的很结巴,完全没有考虑到会问这些问题anyway,还得继续努力
一.Java基础知识
1.问static的用法,被它修饰的内容会有什么特点,在什么时候创建等
2.public private protected的作用域,如果没有加修饰符,那么一个类的作用范围是什么
3.面向对象的特性,Java的多态性体现在哪里
4.线程创建的方法
5线程中wait()和sleep()的比较
二.计网
1.UDP,TCP比较
2.网络层常见协议
三.安卓
1.activity活动周期
2.活动A到B
3.Handler Loop
四.数据结构
常见排序算法,让写快排,然而我脑子短路了,写成了冒泡???大概是因为冒泡我写的熟吧
17.美团安卓一面面经
该面经帖作者:little_little_star(2020届春招)
该面经帖发布时间:2020-03-26
面完,求安慰,
生产者消费者模型
view的绘制handler,handlerthread,intentservice,线程池,都问得很深
okhttp,数据库特性,进程间通信
然后面试官讲了一些他们部门的情况,其它的记不太清了,应该凉了,为什么问的跟你们差那么多
18.美团面试,安卓开发
该面经帖作者:anselchao(2020届春招)
该面经帖发布时间:2020-03-17
问答:
1,TCP,UDP区别
2,TCP三次握手
3,TCP第三次握手失败会怎么样
4,http和https
5,TCP传输怎么保证安全的?
6,,线程和进程
7,进程的通信方式,以及优缺点
8,为什么选择安卓开发
编程题:
1,判断链表的环
2,树的深度
3,树的广度
唉,那几个问答题都了解一点,稍微往深了问就不知道了,编程题倒是不难,面试官要求现场手写一遍,也都没问题,面试历时30分钟,最后面试官就说编程能力不错,就是计算机知识知道的太差了,可能会往后排排,凉凉喽~
19.美团安卓面经
该面经帖作者:终于可以改名字了(2020届秋招)
该面经帖发布时间:2019-10-10
一面面经:
意向城市北京不
平时怎么学习的,博客看一下
在学校参加过什么活动或者项目
死锁条件,实际情况举例
进程线程区别,举例
同步和异步区别,实际例子
http,https区别,https通信过程
tcp三次握手涉及到哪些层,两次握手不行吗
网络请求的方法有哪些,听过哪些,post get区别,幂等性是啥
输入url到页面显示的过程
算法 三选一:
从右往左输出一个整数的不重复数字。
n皇后问题
最长不重复公共字串
100瓶毒药,多少只小白鼠试药问题
二面面经:
感觉二面没有问多少技术问题,面试官也没有准备好的亚子。。
闲聊之中问一点技术?
先问了研究生课题,后来讲了pdd实习项目,然后问平时看什么书,有什么爱好。
拼多多那面氛围怎么样,美团产品怎么样,有了解哪些
问了几个泛型的问题应该答得还可以?
后来问我编译原理学过吗,emm 曾经学过,都忘了,,,然后问有限自动机了解吗,,en?不了解。
问什么事情感觉收获很大,或者对自己提升很有帮助。
研究生学过哪些课程,高级java,并行计算,随机过程,数理统计,分布式啥的,然后问没有高级一点的课程吗,,emm,高级java啊。
对我们这边有什么疑惑吗 问了部门,是小象买菜,在北京。
hr面:
都是常规操作,比如优缺点,如何去选择自己的第一份工作,看重公司的哪方面,我竟然提到了福利?emmm,,家是哪儿的,介绍了一下小象这个部门。聊了将近半个小时吧,还可以。
20.美团 安卓 新鲜凉面
该面经帖作者:orz😇(2020秋招)
该面经帖发布时间:2019-09-04
自我介绍
实习和项目介绍
为啥投安卓呢? 被调的
问一些Java基础
Hashmap数据结构 如何解决冲突
进程和线程
GC的了解
Topk编程,没撕对,问我为什么不直接用treeset?我好方
21.美团 Android 校招 一面面经
该面经帖作者:BarefootBKK(2020春招)
该面经帖发布时间:2020-04-22
刚结束美团的Android一面,趁热记录一下
我4.16号笔试完,周一HR约了周三的面试
一开始自我介绍,然后
- 写一个冒泡排序,然后就着冒泡排序分析时间复杂度,并解释怎么得出来的时间复杂度,再然后问稳定性,怎么判断是稳定的?冒泡排序有没有优化的点(加一个flag),优化后最好和最坏的复杂度是多少
- 说一下哈夫曼树和哈夫曼编码,为什么哈夫曼编码比常规编码优(我去,这都上古世纪学的了,我基本忘光了)
- ListView和RecyclerView的缓存机制和性能优化方案,ViewHolder的好处是什么
- Activity创建时的生命周期(是创建时,我把所有的都答了,然后就被追着问了一大堆)
- 瀑布模型的详细内容(???哥哥我是不是听错了,我是校招不是实习啊喂,好吧是我见识浅了,这东西我只在软概里学过,忘了。。。)
- web服务器有哪些
- HTTP和FTP的端口是多少
- POST和GET请求有什么区别
9.如果让你实现软件的更新,你会做哪些操作?
反问:
美团比较看重应届生哪些能力(“基础,比较看重基础”)
还问了面试官一个功能的解决方案,然后面试官说了好多(其实我没听懂)
感觉凉凉了,亏我准备了辣么久的JAVA知识。。。许愿二面
22.Java岗结束春招,总结面经回馈牛客,祝大家都能得偿所愿~(Java面经)
该面经帖作者:lyfff(2019届社招)
该面经帖发布时间:2020-04-25
美团面经:(offer)
部门:跟财务相关,到店,财务审计,每天数据量千万条
一面 2h(4.09)
1.实习项目难点,搭建框架时候的难点
2.项目开发过程中遇到的难点,数据标注平台开发 中的逻辑,怎么发现有问题的,标注批次计数?
3.最近怎么学的 并发,博客,怎么保证博客写的是对的,没有看书吗
4.并发包下学了什么
sychronized底层原理? monitor对象头里面是什么?
锁升级?
reetrantlock底层原理?AQS的等待队列 线程安全吗?
5.volatile,CAS
6.为什么要需要 并发安全处理
7.java集合
8. 事务的特性,解释
9.事务隔离级别
10.存储引擎?Inodb,myisam区别? inodb索引,myisam索引?
11.为什么主键要自增,叶子节点key为什么有序?
12.最左前缀匹配原则?
13.算法题,打印出一个字符串中所有的回文子串
二面:2h(4.11)
一.了解JVM or 中间件? JVM?平时怎么学习?如何帮助自己记忆?看看我博客?
二.JVM内存结构
程序计数器工作原理?作用?不会
JVM调优经历dump之类的操作?无
垃圾收集器CMS工作原理? Concurrent体现在哪?用户停顿?垃圾收集为什么要开启多个线程?
三.数据库
知道哪些锁?事务隔离级别? 可串行化怎么实现的?
索引结构?为什么使用B+索引?
查询性能优化?Explain里都能获取什么信息
四.JAVA
concurrentHashMap并发原理?扩容机制?
线程池?知道哪些具体的线程池?如果自己实现一个线程池都要考虑哪些参数?拒绝策略有哪些?
sychronized 锁升级?
编程:CAS原理?用CAS实现 两个线程给同一个变量赋值?
AQS等待队列为什么设计成双向链表?
fusk/join?
Arraylist和Linkedlist区别
编程:建模题
offer (4.20)
23.美团还愿+面筋(Java面经)
该面经帖作者:今天你喝绿豆沙了嘛(2021届实习)
该面经帖发布时间:2020-04-26
从3月23接到笔试通知到4月17 历经将近一个月的时间终于拿到了美团北京后端开发的offer😀
3月23接到笔试邀请 👉3月26笔试 👉 4月2一面 👉 4月2二面 👉 4月9三面 👉 4月14oc 👉4月17offer get
时间跨度还是很大的,但是不得不说面试过程很舒服,面试官也很平易近人;在9号3面完之后的那几天没有消息我还以为凉了,然后微信询问了一下面试官,过了一会就收到了oc😀
--------------------------------------------------面筋
一面:
- 自我介绍
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
总结
其实要轻松掌握很简单,要点就两个:
- 找到一套好的视频资料,紧跟大牛梳理好的知识框架进行学习。
- 多练。 (视频优势是互动感强,容易集中注意力)
你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。
对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。下面资料部分截图是我花费几个月时间整理的,诚意满满:特别适合有3-5年开发经验的Android程序员们学习。
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
[外链图片转存中…(img-0mVAKCqb-1712678054053)]
总结
其实要轻松掌握很简单,要点就两个:
- 找到一套好的视频资料,紧跟大牛梳理好的知识框架进行学习。
- 多练。 (视频优势是互动感强,容易集中注意力)
你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。
对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。下面资料部分截图是我花费几个月时间整理的,诚意满满:特别适合有3-5年开发经验的Android程序员们学习。
[外链图片转存中…(img-Yite6Ecz-1712678054054)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-qaz45uCw-1712678054054)]