美团android面经(已拿offer)+准备技巧
准备技巧
拿到了心仪的offer来回馈牛客,在面试题开始之前想给大家先分享一些经验。
- 不要盲目复习和看面经,要去抓你自己项目中涉及到的基础知识,重点去准备项目中涉及到的基础知识。
- java很重要,不要以为android基础最重要,我面了好多家了都是java的比重最大。
- 简历上的个人技能突出你几个你最熟悉的关键点,不要只写熟悉android,熟悉java。比如熟悉网络请求库OkHttp或Retrofit,或者熟悉View、IPC等等等,这样面试官才会有针对性的去考察你。
- 项目不好没关系,但是要熟悉,建议自己以博客的形式记录下项目的整体流程和一些关键技术的使用。
面经(1-2面技术问题汇总)
可能还有些问题记不住了,还有就是这里只是简单写个问题的方向,具体面试的时候会继续深入问,所以看着问题少但面试时间反而很长。
java问题
1.以下两种创建String方式的区别,`==`与`equals`的区别,以及Object类中`equals`的原理,new一个对象所经历的步骤(判断是否加载,内存分配等等等),以及str在栈中与内存中的存储。```java
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的区别
考察的不是内部拦截与外部拦截,其实考察的是:NestedScrollParent NestedScrollChild
2.Activity的生命周期与四种启动模式。(除普通的那些还有onRestoreInstanceState与onSaveInstanceState与onNewIntent以及他们的使用场景与区别)
注意调用onNewIntent不会再调用onCreate方法了,会直接调用onStart与onResume。如果是已经不可见的Activity(调用了onStop的,则会先调用onRestart之后在调用onStart方法)。
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.反问环节的部门介绍,工作介绍等等等。
#美团##安卓工程师##面经##校招#