Android面经:京东、美团、猫眼
本来以为公司能转正结果半路出了岔子,投简历比较晚所以面的厂也不多,0offer的我好忧桑,发份面经攒波人品(昨天面了头条被怼惨了就不放上来了。。。)
jingdong
一面
- 实习内容收获
- MVP模式
- Activity启动模式,什么场景适合使用singleTask
- http和https
- http缓存
- 心跳机制、相关算法
- TCP和UDP
- 三次握手为什么不是二次握手
- 单例模式如何实现同步
- okhttp
- handler
- OOM解决方案
- hashmap
- 数据库(不太熟悉)
- 排序算法(二分、快排)复杂度
- 想学习了解哪方面知识
二面
聊人生(估计没hc,劝退)
meituan
一面
- Activity生命周期,Activity A 打开Activity B 两个Activity的生命周期变化
- onNewIntent和onSaveInstanceState
- Fragment和Activity的不同,什么时候用Fragment什么时候用Activity
- Service的生命周期,用法
- ContentProvider作用
- 图片如何加载(计算大小等)
- Handler(一个线程中是否可以有多个handler)
- 自定义View如何实现
- 如何创建一个线程
- 静态内部类和内部类不同点
- OOM和内存泄漏
- 单例模式(为什么使用DLC不使用懒汉)
- Android中的设计模式
- 网络:五层模型,每层有哪些协议(FTP是干啥的)
- 数据结构:链表和数组的不同
二面
- 四大组件
- Activity A 打开Activity B 两个Activity的生命周期变化
- 广播(静态、动态、本地)本地广播能否作用于一个应用中的多个进程
- Handler(sThreadLocal的作用)
- synchronized(类和对象的区别)、volatile
- 事件分发机制
- View绘制过程、能否在onDraw()里面创建对象
- Android中的GC算法、如何判断对象是否回收、GC ROOT可以有哪些
- 进程间通信(Binder通信机制)
- 动画类型
- 注解
- 反射
- 泛型(泛型擦除)
- HTTP协议访问网页过程
- HTTP和HTTPS区别,如何加密
- 算法:二叉树中序遍历(递归非递归)
三面
- 实习项目中接触到的感觉比较厉害的东西
- 电量优化、内存优化等如何做的
- 未来规划,架构和安全你选哪个
- 安全你觉得应该学习哪些东西(要学哪些技能点)
maoyan
一面
- 数组和链表的区别 linkedlist能否get(index)
- 栈和队列的区别(举例)
- 缓冲区溢出
- 进程和线程
- 子类能否重写父类的静态方法
- 内部类和静态内部类的区别
- 内部类能否访问外部类的private参数,外部类能否访问内部类的private参数
- Java是否能多继承,抽象类和接口的区别,抽象类是否至少要有一个抽象方法
- final finally finalize
- 重载和重写的区别
- 泛型、泛型擦除
- JVM组成
- 判断对象是否死亡的方法,GC ROOT能是那些
- 内存模型中哪部分需要GC,栈是否需要GC
- GC算法有哪些
- Activity打开一个小Dialog并关闭的生命周期过程
- Fragment、getActivity()能否为空
- Fragment和Activity如何通信传值
- 广播的两种注册方法,区别是什么
- Service运行在哪个线程
- Handler运行过程
- ANR发生情况
- 手撕代码:在一个字符串中找到第一个只出现两次的字符