2020美团面试真题解析

1.双链表找相交结点2.10亿数,找最大100个数3.synchronize 静态方法和普通方法4.ANR是什么,怎么解决

5.Activity生命周期,如何摧毁一个Activity(finsh())

6.startserver和bindserver

7.聊项目

8.聊各种各样的工作

自我介绍实习时长

有没有做过相关的项目或者自己实现过小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吗? 答,是的

自我介绍

RecyclerView与ListView的对比,缓存策略,优缺点

Activity与Fragment的生命周期

Fragment add与replace的区别,分别对Fragment的生命周期影响

事件的分发机制提到了责任链模式,就接着问责任链模式的优缺点

除了责任链模式还了解哪些设计模式,说了观察者模式,单例模式,工厂模式

观察者模式的优缺点,什么情景下使用?使用过哪些用观察者模式的框架?

RxJava了解吗? 不了解

Gradle文件了解吗? 说不太了解就没往下问

中间就优化问题问了好多,我都不会,问的我都觉得我已经凉了

view的绘制流程,View层次过深怎么优化,选择哪个布局比较好?

手撕代码递归反转栈,判断链表是否有环,反转链表

StackOverFlow与OOM的区别?分别发生在什么时候,JVM栈中存储的是什么,堆中存储的是什么?

什么时候会发生内存泄漏?举几个例子

提问环节于是问了一下平时如何学习android以及准备面试?

日语什么水平,为什么学日语,不看字幕能听懂吗?

平时怎么学习的?觉得自己哪些专业课学得比较好?

除了日语还有哪些兴趣爱好,准备学到什么程度?

为什么选择android?身边同学都选择什么方向?

为面试做了哪些准备?说了看了深入理解JVM那本书,于是问JVM哪一部分比较熟?

如何判断一个对象是否被回收,有哪些GC算法,实际虚拟机使用较多的是什么GC算法?

如何开启一个线程,开启大量线程会有什么问题,如何优化?

线程池的相关参数,有哪些类型的线程池,线程池任务如何调度,任务队列只是先进先出的队列吗,任务有优先级怎么办,知道优先级反转吗?

平时开发遇到问题会怎么办?提到了StackOverFlow这个网站,于是被问你知道StackOverFlow除了是个网站还有其他意思吗? 答:栈溢出

于是接着问什么时候会StackOverFlow,如果让你写一段栈溢出的代码你会什么写,一个栈大概有多大,为什么?每个线程都有这样大小的一个栈吗?

有了解过面试的岗位做什么的吗?说了下好像是用React Native做跨端

有没有对笔试和前面的面试进行复盘?现在你觉得笔试题你能做出几道?

除了Android还关注过哪些技术?

提问环节为什么问了很多非技术问题? 答:因为我觉得非技术方面如性格,工作是否稳定不仅是HR的事,用人部门也需要了解

如何判断

手撕代码求集合所有的子集

电话简单的聊了一下

哪里人?现在在家吗?

实验室什么方向,学校什么时候开学,上网课跟平时上课有什么区别,感受如何?

为什么选择做前端(android),身边有其他同学做android吗,平时有交流技术吗?

有了解自己的岗位做什么的吗?

还面了哪些公司,进度如何?后续有相关通知会联系你,有问题可以打电话给我

最好嘴贱问了我面试通过没有?没得到肯定答复,好像面试比较忌讳直接问结果?不知道有没有影响

上来就是编程题,讲思路

找两个链表重叠的开始结点(双指针)

对于5亿条成交数据,找出前100个销量最好的商品

面向对象对于面向过程有什么优势

对多线程的理解(我答提高并发度,安卓ANR需要多线程解决)

假如只有一个cpu,单核,多线程还有用吗

hashmap和hashtable有啥不同(我说底层实现差不多,但是hashtable是线程安全的,因为访问的时候会加锁)

怎么做到线程互斥

synchronized描述的一个静态方法和一个普通方法都对一个变量count进行访问,能保证线程安全吗(答不能,对象锁和类锁不是同一个东西)

对反射有了解吗(答了动态获取对象,在注解上的应用)

activity生命周期

handler

怎么样算是一次请求成功了

项目中写的bitmap优化是指?

线程池用过没,有什么优点

怎么维持的长连接为啥要有心跳包

a启动b 再返回生命周期

线程进程协程区别

上下文切换的区别

求树高度

三次握手为什么不是两次一次五次六次

kmp算法

java内存分区

jvm和dvm有什么区别