一、问题背景
博主在4月份上旬准备美团Android安卓开发面试时,在牛客网上对2019-2020年所有的美团Android安卓开发面试经验帖进行了汇总,现在把这些汇总的内容分享出来给大家参考。
二、2019-2020年美团Android安卓开发面试经验贴汇总
1.美团Android工程师秋招面筋
该面经帖作者:长街不敌千里雪(2019届秋招)
该面经帖发布时间:2018-10-12
2018/9/20 一面
自我介绍
SS助手介绍
SS助手有什么项目难点
java 线程池如何设置参数?
Flutter或者一个新东西是如何学习的?
后台接口如何协商
前后台都会做的代码量,怎么看待?
android的性能问题如何发现?
android如何调试性能问题?
android的自定义view是如何做的?
开放性问题:项目很紧急怎么办?
产品定义的产品需求不是很好,如何反馈?
你有什么要问我的吗?
2018/9/27 二面
自我介绍
介绍下你是如何学习的
介绍下在阿里实习的经历
flutter 的层级结构
flutter和 react native的区别?
flutter 选择dart语言的原因是什么?
面向对象编程的特点
里氏替换原则
依赖倒置原则
docker 用在什么地方比较多?
docker 和虚拟机的不同
git 常见开发流程
git branch 的底层实现结构
git branch 和 git tag的区别?
未来职业规划
你和周围的人优点是什么?
你有什么问题要问我吗?
2018/9/29 三面
自我介绍
实习经历
知道哪些设计模式?
你的优点是什么?
你平时的兴趣爱好是什么?
java的excetion和error的区别?exception和error共同继承哪个类?
java的error在哪些情况下会碰到?
你可以来北京吗?
SS助手主要做什么?
性格是怎么样的?
2018/10/11 hr面
没问啥问题,简单介绍自己,然后问下工作意向,薪资要求。说等通知
2.美团android一面面经
该面经帖作者:牛客683658658号(2020届春招)
该面经帖发布时间:2020-03-30
面试官的电脑出了点问题,所以从视频面变成了微信电话面
1.自我介绍
2.项目内容,问的很多,挺细的,哪些功能用了哪些方法,思路,问题,解决方案(android的问题都是这一部分问的)
3.数据库三范式
4.操作系统死锁,分页
5.知道哪些数据结构,红黑树平衡二叉树区别,栈队列区别,数组链表区别,代码题两个栈实现队列
6.http https
7.tcp/ip
8.怎么学android的
9.遇到过什么问题,怎么解决的
10.除了android还学过什么(我之前做后台的,简历上有)
11.设计模式
12 集合,hashmap实现细节
3.美团Android客户端一面面经
该面经帖作者:星__尘(2021届实习)
该面经帖发布时间:2020-03-29
人生中第一次求职面试给了美团。自己实在太菜,面试官问基础知识都不会了,自己准备的那些看起来很高深的知识点面试官基本没问。面试官特别和蔼,都让我觉得自己在这浪费了面试官的时间。
发出来攒攒人品,大佬勿喷??方便的话点个赞呗
你之前都学的后端技术栈,为什么选客户端?
写个快排(当时脑子空了,竟然没写完整)快排复杂度是什么?O(nlogn)是怎么推算出来的?
实现个单链表结构,实现个链表尾部插入方法
说一下怎么判断链表是否有环(这是剑指offer原题)
说一下反转链表,要求用递归(也是剑指offer原题)
看你的项目用了springboot框架,这个框架怎么便捷了?帮你解决了什么问题,具体体现在哪些方面?
操作系统学完没?说说死锁发生的原因,怎么解决?在现实开发中出现这种状况怎么解决?
你的项目网络用的什么协议?回答:http。为什么用http,不直接用tcp?我自己封装一个tcp传输不行吗?
说一下Redis底部实现,用了哪些数据结构,举几个例子。
你还了解过什么技术有自己的感受和想法,可以说一说。我提到了flutter,问flutter跟原生开发有什么不同,有哪些问题或者优势,实现跨端的原理是什么。
面试官:有什么问题问我?问了部门业务,对跨端开发的看法,还有觉得我需要再重点学习哪一块。
最后说是可能后面还会有同学或者hr联系我,让我等通知。基本凉透了,第一次面试最直观的感受就是基础知识很重要,当时快排没写完整,瞬间石化,我咋连这个都不会了,明显感觉面试官后面几个问题更简单了。
4.美团Android面经(许愿实习offer)
该面经帖作者:ZhuVincent(2021届实习)
该面经帖发布时间:2020-03-30
美团一面:
自我介绍
学校课程
计网:OSI七层模型
应用层协议了解多少
DNS和Http在什么层
TCP、UDP区别
一般在什么层操作
学校学过的语言
Java三大特性
怎么体现多态private public protected区别
进程线程区别
单核多线程
Java多线程
数据结构队列和栈的区别
队列和栈的应用(我说了非递归的树的前序和层次遍历中的应用)
给我看了一棵树,叫我写出前序遍历
安卓中启动一个APP一般启动多少个进程,多少线程
UI线程和工作线程的区别
ListView复用item
知道自己笔试成绩不
后面有没有去想那些题
来思考两道题:1.在下述代码中当i== 3, j== 2 时跳出多层循环2.如何在下述代码的注释那里做一些操作让后面输出时,i=5并且j=3呢?for (int i = 0; i < 5; i++) {for (int j = 0; j < 5; j++) {printf("\ni * j = %d", i * j);
}
}int i = 3, j = 5;printf("\ni = %d, j = %d", i, j);// do somethingprintf("\ni = %d, j = %d", i, j);
反问问题:美团文化,工作环境
美团二面复盘:
学了多久安卓
学习途径
你的意向城市
树的前序后序,非递归,你说说
你说你了解源码,你了解哪些
Handler源码说说
还有其他吗,你说说view绘制吧
你觉得你在安卓中有什么突出的
你在安卓学习中的成就
Otto和eventbus区别
两者原理
使用场景,你用过吗
单例模式实现
绩点
网络方面你用过什么
合并两个有序链表
给我看看你的上线项目
问问题:怎么更深入的学(先看安卓底层的源码,再看框架的源码)
二面一周了,祈祷能被捞或者能给机会HR面
美团点评重新面一面(2020.03.28更新):
面试官自我介绍,我自我介绍
熟悉的设计模式(单例)
介绍了单例的五种实现
手写单例的静态内部类实现
说了一下为什么要双检锁
锁的实现原理(synchronized实现原理)
锁方法,锁代码块,锁类的区别Java四种引用
弱引用一定会在下一次GC回收吗
还有其他熟悉的设计模式吗HTTP1.0,1.1,2.0,3.0
活动启动流程
谁启动活动的
活动生命周期onStart,onResume的区别onPause和onStop区别
为什么onPause不能执行耗时操作
事件处理机制
滑动冲突Handler中是否有messagequeueHandler解决内存泄漏
内存泄露是什么,怎么解决
有没有使用过内存查看工具Handler可以主动释放吗
思考题:一个挂家里的摄像头怎么连上WiFi
问问题:怎么学习源码
5.美团android一面,发个面经吧
该面经帖作者:我一定可以!!(2021届实习)
该面经帖发布时间:2020-03-27
1.双链表找相交结点
2.10亿数,找最大100个数
3.synchronize 静态方法和普通方法
4.ANR是什么,怎么解决
5.Activity生命周期,如何摧毁一个Activity(finsh())
6.startserver和bindserver
7.聊项目
8.聊各种各样的工作
6.美团android春招实习面经 (三轮技术面+hr面)
该面经帖作者:Senrnata(2021届实习)
该面经帖发布时间:2020-03-23
一面 时长50分钟
自我介绍 实习时长
有没有做过相关的项目或者自己实现过小daemon吗
平时有跟其他同学合作过吗,你是写客户端的,遇到问题如何解决,你觉得跟你合作的同学水平如何?
前后端通信用的什么协议?
输入一个URL发生了什么,webview有用过吗?
了解HTTPS吗,建立的过程?使用Json有遇到什么问题吗
android如何发起网络请求,有用过相关框架吗,okhttp框架解决了你什么问题?
如何更新UI,为什么子线程不能更新UI?
了解ANR吗?
String有哪些方法,常用哪些, ==与equals的区别?
JAVA中用过哪些容器类,HashMap底层数据结构,如何处理hash冲突?
Activity的四种启动模式,区别?
Activity A 跳转B B跳转C,A不能直接跳转到C,A如何传递消息给C?
AndroidManifest文件中用过哪些相关权限?
Intent显示跳转与隐式跳转,如何使用?
除了JAVA还会其他语言吗?说了C++,写过一点JS
React Native了解吗?答:不了解 了解过NDK。于是问为什么用NDK
接着问Jni了解吗?有没有自己使用过,只要编译成功Hello World也算,与JAVA相比效率如何
后来面试官解答:同一段代码C与JAVA运行效率快很多,因为JAVA要编译成字节码,但考虑到JNI本身调用的开销,在调度频率不高但一次任务处理量大的情况下时候适合用JNI调C
手撕代码 逆序输出ArrayList
提问环节 问:部门技术栈?答,React Native所以要学JS 平时开发偏View吗?答,是的
二面 时长1h
自我介绍
RecyclerView与ListView的对比,缓存策略,优缺点
Activity与Fragment的生命周期
Fragment add与replace的区别,分别对Fragment的生命周期影响
事件的分发机制 提到了责任链模式,就接着问责任链模式的优缺点
除了责任链模式还了解哪些设计模式,说了观察者模式,单例模式,工厂模式
观察者模式的优缺点,什么情景下使用?使用过哪些用观察者模式的框架?
RxJava了解吗?不了解
Gradle文件了解吗?说不太了解就没往下问
中间就优化问题问了好多,我都不会,问的我都觉得我已经凉了
view的绘制流程,View层次过深怎么优化,选择哪个布局比较好?
手撕代码 递归反转栈,判断链表是否有环,反转链表
StackOverFlow与OOM的区别?分别发生在什么时候,JVM栈中存储的是什么,堆中存储的是什么?
什么时候会发生内存泄漏?举几个例子
提问环节 于是问了一下平时如何学习android以及准备面试?
三面 时长50分钟
日语什么水平,为什么学日语,不看字幕能听懂吗?
平时怎么学习的?觉得自己哪些专业课学得比较好?
除了日语还有哪些兴趣爱好,准备学到什么程度?
为什么选择android?身边同学都选择什么方向?
为面试做了哪些准备?说了看了深入理解JVM那本书,于是问JVM哪一部分比较熟?
如何判断一个对象是否被回收,有哪些GC算法,实际虚拟机使用较多的是什么GC算法?
如何开启一个线程,开启大量线程会有什么问题,如何优化?
线程池的相关参数,有哪些类型的线程池,线程池任务如何调度,任务队列只是先进先出的队列吗,任务有优先级怎么办,知道优先级反转吗?
平时开发遇到问题会怎么办?提到了StackOverFlow这个网站,于是被问你知道StackOverFlow除了是个网站还有其他意思吗?答:栈溢出
于是接着问什么时候会StackOverFlow,如果让你写一段栈溢出的代码你会什么写,一个栈大概有多大,为什么?每个线程都有这样大小的一个栈吗?
有了解过面试的岗位做什么的吗?说了下好像是用React Native做跨端
有没有对笔试和前面的面试进行复盘?现在你觉得笔试题你能做出几道?
除了Android还关注过哪些技术?
提问环节 为什么问了很多非技术问题?答:因为我觉得非技术方面如性格,工作是否稳定不仅是HR的事,用人部门也需要了解
如何判断
手撕代码 求集合所有的子集
hr面 时长20分钟
电话简单的聊了一下
哪里人?现在在家吗?
实验室什么方向,学校什么时候开学,上网课跟平时上课有什么区别,感受如何?
为什么选择做前端(android),身边有其他同学做android吗,平时有交流技术吗?
有了解自己的岗位做什么的吗?
还面了哪些公司,进度如何?后续有相关通知会联系你,有问题可以打电话给我
最好嘴贱问了我面试通过没有?没得到肯定答复,好像面试比较忌讳直接问结果?不知道有没有影响 有没有同学知道阿?
7.美团Android开发实习二面面经
该面经帖作者:dsdisenc(2021届实习)
该面经帖发布时间:2020-03-20
之前投的美团,第一次笔试被捞,周二一面周五二面,效率还是挺快滴~
一面就不回忆了,问题都比较常规,但还是有难度,也有点压力。
二面面试官很nice,很会把握节奏,问的问题也很开放,很舒服~
发波面经攒人品~希望美团通过,真滴很喜欢美团啦
1、自我介绍
2、AndroidUI绘制流程?
3、Android中每一帧绘制时间在多少ms以下算流畅?
1000/60 = 16ms
4、电影是24fps,为什么Android需要60帧才流畅?
触摸、点击事件反应的角度还有动画流畅性的角度,开放性问题
5、学习Android的方式?为什么选择做安卓
6、你自己觉得做过最好的一个Android页面是什么?
7、桶排序,对全省高考成绩做一个排序,怎么设计?
8、手撕单例模式
9、Android和Spring都用的Java,你分析一下这两种开发(框架)用的Java的区别?
10、对美团的看法?
说了一下看过美团的技术博客,对他们的CI流程特别感兴趣,还有业务很有潜力等等等
最后面试官还给我介绍了一下美团对实习生校招生的培养体系,感觉很不错hhh
这次面试基本上都是围绕简历上的项目和个人经历来扩展的,我觉得这样的面试确实很舒服hhh
8.美团android面经(已拿offer)+准备技巧
该面经帖作者:coder_hezi(2021届实习)
该面经帖发布时间:2020-04-02
准备技巧
拿到了心仪的offer来回馈牛客,在面试题开始之前想给大家先分享一些经验。
不要盲目复习和看面经,要去抓你自己项目中涉及到的基础知识,重点去准备项目中涉及到的基础知识。
java很重要,不要以为android基础最重要,我面了好多家了都是java的比重最大。
简历上的个人技能突出你几个你最熟悉的关键点,不要只写熟悉android,熟悉java。比如熟悉网络请求库OkHttp或Retrofit,或者熟悉View、IPC等等等,这样面试官才会有针对性的去考察你。
项目不好没关系,但是要熟悉,建议自己以博客的形式记录下项目的整体流程和一些关键技术的使用。
面经(1-2面技术问题汇总)
可能还有些问题记不住了,还有就是这里只是简单写个问题的方向,具体面试的时候会继续深入问,所以看着问题少但面试时间反而很长。
java问题
1.以下两种创建String方式的区别,`==`与`equals`的区别,以及Object类中`equals`的原理,new一个对象所经历的步骤(判断是否加载,内存分配等等等),以及str在栈中与内存中的存储。String str = new String("hello");String str2 = "hello";2.java中Exception的结构(exception class结构关系父类子类等等等)
3.Java IO的结构与区别
4.java中创建线程的方式
5.java中可以保证多线程安全的方式(包括:字段,多种锁,保证线程安全的数据结构与实现)
6.虚拟机中的内存分配
7.ThreadLocal的内部原理,以及Thread中有什么属性和方法。
8.ArrayList与LinkedList的区别,以及数组扩容。
9.乐观锁与悲观锁
手撕代码
1.手写冒泡排序+二分查找2.手写翻转二叉树3.手写两个单例模式,DCL和静态内部类(同时问了final关键字与静态内部类为什么能满足单例模式)
计算机基础
1.TCP/IP的四层结构
2.TCP三次握手与四次挥手
3.TCP的报文
4.Http的报文
5.put与get的区别
6.put与post的区别
Android
1.Android中解决滑动冲突的方式:
考察的不是内部拦截与外部拦截,其实考察的是:NestedScrollParent NestedScrollChild
2.Activity的生命周期与四种启动模式。(除普通的那些还有onRestoreInstanceState与onSaveInstanceState与onNewIntent以及他们的使用场景与区别)
注意调用onNewIntent不会再调用onCreate方法了,会直接调用onStart与onResume。如果是已经不可见的Activity(调用了onStop的,则会先调用onRestart之后在调用onStart方法)。
3.View的绘制过程(非常详细地说),具体还有些仔细的小问题。
4.View的事件分发(非常详细地说),具体还有些仔细的小问题。
5.多个具体的场景讲述Activity生命周期调用的过程。诸如一个Activity打开另一个Activity,他们之间的生命周期调用。
6.了解RN么,了解前端么。
其他问题
协作上的问题(发散性问题)
1.如何评估一个需求多久能够做完;
2.给出的时间比你想象的少会怎么做;
3.给出的时间比你想象的多会怎么做;
4.如何学的android,看过哪些书
5.实习时间与实习长度
6.项目的个人完成情况
7.反问环节的部门介绍,工作介绍等等等。
9.美团Android一二面凉经
该面经帖作者:一个发际线两个高(2020届春招)
该面经帖发布时间:2020-03-26
一面(30分钟):
0、实习期间公司项目,自己开发的项目
1、进程和线程的区别
除了常规的,还比较了一下两者调度的区别,进程是靠中断来使系统陷入内核态然后完成调度,线程是依靠JVM进行。
2、线程的状态。
新建、就绪、运行、阻塞、死亡。不小心把进程的僵死什么的给说了……还好面试官捞了一手
3、TCP属于哪个层、TCP三次握手四次挥手。
4、Activity生命周期,A启动B生命周期变化。
5、自定义View,需要重写哪几个方法。如果要你实现WIFI信号的显示,那么你会怎么做。
6、Android动画了解吗。
说了过渡动画,说了自己封装的ObjectAnimator工具类,以及MotionLayout相关使用、以及过渡动画实现共享Item的用法。
7、算法,打印2到100所有的质数,不要求效率,你输出就好了……
二面(1hour):
0、自我介绍
1、实习期间做的最成功的一件事,为什么觉得最成功。
2、针对具体的实习过程进行了讨论。
3、Java泛型。
4、为什么基本重写equals方法时也需要重写hashCode方法。
5、手撕生产者消费者模型,很惭愧……没撕出来。
6、成绩怎么样……LZ本科期间及其浪荡,成绩很差,然后面试官脸色就变了。心态就有点崩。
7、计算机怎么画一条线,底层怎么实现的。
8、PV原语。
9、排序算法。
10、树的遍历方式。
11、反问。
心得体会:成绩不好的同学需要谨慎回答关于成绩的问题,不要那么直白,是把双刃剑。华为面试的时候说自己成绩不好,但是有博客和github作为后期努力的支撑,面试官就还是很开心。LZ直到大三下学期才开始努力学习,确实浪费了很多时间。
收到了面试官的短信说挂了,难受,奉劝各位好好学习。
10.美团Android三面+hr面面经(已拿offer)
该面经帖作者:一个发际线两个高(2020届春招)
该面经帖发布时间:2020-03-26
前面两面:https://www.nowcoder.com/discuss/390384以为自己凉了,看来还没有。
三面(50mins):
0、自我介绍。
1、实习工作介绍。
2、如果让你从0开始搭建一款APP,你会怎么做。比如说就是美团外卖。
a、 基础类设计
b、网络设计
c、兼容性考虑
d、代码质量保证
e、测试相关
f、设计模式的使用
g、MVVM架构的使用
3、学校学习了什么课程,成绩怎么样……
4、代码,快排。
5、反问
问了一下美团对于Android应届生的需求,得到的答复是需要CS相关基础好,其他的要求比较宽松。
还有就是学习Android的方法,大佬说多看各种不同APP和优质框架的源码,从源码中学习。
总结:问题很少,每题都很致命……而且是没有答案的那种,你得自己思考。这个时候可以许愿一波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/1054787696、由上面引申出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/10516884111、反问环节(虽然讲的很多,但我讲的比较快只面了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约了周三的面试
一开始自我介绍,然后
1. 写一个冒泡排序,然后就着冒泡排序分析时间复杂度,并解释怎么得出来的时间复杂度,再然后问稳定性,怎么判断是稳定的?冒泡排序有没有优化的点(加一个flag),优化后最好和最坏的复杂度是多少
2. 说一下哈夫曼树和哈夫曼编码,为什么哈夫曼编码比常规编码优(我去,这都上古世纪学的了,我基本忘光了)
3. ListView和RecyclerView的缓存机制和性能优化方案,ViewHolder的好处是什么
4. Activity创建时的生命周期(是创建时,我把所有的都答了,然后就被追着问了一大堆)
5. 瀑布模型的详细内容(???哥哥我是不是听错了,我是校招不是实习啊喂,好吧是我见识浅了,这东西我只在软概里学过,忘了。。。)
6. web服务器有哪些
7. HTTP和FTP的端口是多少
8. 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,CAS6.为什么要需要 并发安全处理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?
--------------------------------------------------面筋
一面:
1. 自我介绍
2. HashMap源码分析
3. ThreadLocal作用+源码分析(jdk1.7/ jdk1.8)
4. 一个算法:求两个链表的相交点(LeetCode上原题,用双指针做)
5. 数据结构:迭代实现二叉树的中序遍历
6. 数据库:一张表学生姓名+科目+成绩 统计学科都及格的学生姓名
7. StringBuilder和StringBuffer 线程安全怎么实现的
8. 问学习的途径 方法 时间安排
9. 关于JVM 关于双亲委派
10. 时间跨度有点长 只记得这些了
二面:
11. 问项目
12. 问算法
13. 问各种排序
14. 问基础
15. 问时间安排
16. 问学习计划 问学习途径 问看过的书
17. 剩下的记不得了
三面:
18. 三面主要就是问项目问项目问项目,每个项目都问
19. 然后问得到奖,得奖比赛具体做的什么项目
20. 然后问个人博客
21. 问问学习计划 问学习途径 问看过的书
22. 问参加的活动巴拉巴拉,问兴趣爱好
好了,大概就这么多,大家可以考察下自己对于知识点的掌握情况。
对于答案,金九银十面试季,跳槽季,整理面试题及解析已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。
附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
本文在开源项目:【GitHub 】中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
如果需要PDF版本可以在群文件夹里,自行领取!
或者在群文件夹中里,自行下载直达领取链接:【https://links.jianshu.com/go?to=https%3A%2F%2Fjq.qq.com%2F%3F_wv%3D1027%26k%3DBRZhpPkt】
又到了毕业季,内推季,如果你有面试经验,面试题分享,欢迎投稿~