BATJ 面霸:程序员可是要改变世界呀!阿里巴巴 3 面,移动客户端开发岗面试题
并发集合了解哪些
ConCurrentHashMap 实现
CAS 介绍
滴滴
MVP
广播(动态注册和静态注册区别,有序广播和标准广播)
service 生命周期
handler 实现机制(很多细节需要关注:如线程如何建立和退出消息循环等等)
多线程(关于 AsyncTask 缺陷引发的思考)
数据库数据迁移问题
设计模式相关(例如 Android 中哪里使用了观察者模式,单例模式相关)
x 个苹果,一天只能吃一个、两个、或者三个,问多少天可以吃完
TCP 与 UDP 区别与应用(三次握手和四次挥手)涉及到部分细节(如 client 如何确定自己发送的消息被 server 收到) HTTP 相关 提到过 Websocket 问了 WebSocket 相关以及与 socket 的区别
是否熟悉 Android jni 开发,jni 如何调用 java 层代码
进程间通信的方式
java 注解
计算一个 view 的嵌套层级
项目组件化的理解
多线程断点续传原理
Android 系统为什么会设计 ContentProvider,进程共享和线程安全问题
jvm 相关
Android 相关优化(如内存优化、网络优化、布局优化、电量优化、业务优化)
EventBus 实现原理
美团
static synchronized 方法的多线程访问和作用,同一个类里面两个 synchronized 方法,两个线程同时访问的问题
内部类和静态内部类和匿名内部类,以及项目中的应用
handler 发消息给子线程,looper 怎么启动
View 事件传递
activity 栈
封装 view 的时候怎么知道 view 的大小
arraylist 和 linkedlist 的区别,以及应用场景
怎么启动 service,service 和 activity 怎么进行数据交互
下拉状态栏是不是影响 activity 的生命周期,如果在 onStop 的时候做了网络请求,onResume 的时候怎么恢复
view 渲染
今日头条
数据结构中堆的概念,堆排序
死锁的概念,怎么避免死锁
ReentrantLock 、synchronized 和 volatile(n 面)
HashMap
singleTask 启动模式
用到的一些开源框架,介绍一个看过源码的,内部实现过程。
消息机制实现
ReentrantLock 的内部实现
App 启动崩溃异常捕捉
事件传递机制的介绍
ListView 的优化
二叉树,给出根节点和目标节点,找出从根节点到目标节点的路径
模式 MVP,MVC 介绍
断点续传的实现
集合的接口和具体实现类,介绍
TreeMap 具体实现
synchronized 与 ReentrantLock
手写生产者/消费者模式
逻辑地址与物理地址,为什么使用逻辑地址
一个无序,不重复数组,输出 N 个元素,使得 N 个元素的和相加为 M,给出时间复杂度、空间复杂度。手写 ##### 算法
Android 进程分类
前台切换到后台,然后再回到前台,Activity 生命周期回调方法。弹出 Dialog,生命值周期回调方法。
Activity 的启动模式
爱奇艺
RxJava 的功能与原理实现
RecycleView 的使用,原理,RecycleView 优化
ANR 的原因
四大组件
Service 的开启方式
Activity 与 Service 通信的方式
Activity 之间的通信方式 HashMap 的实现,与 HashSet 的区别
JVM 内存模型,内存区域
Java 中同步使用的关键字,死锁
MVP 模式
Java 设计模式,观察者模式
Activity 与 Fragment 之间生命周期比较
广播的使用场景
百度
Bitmap 使用时候注意什么?
Oom 是否可以 try catch ?
内存泄露如何产生?
适配器模式,装饰者模式,外观模式的异同?
ANR 如何产生?
String buffer 与 string builder 的区别?
如何保证线程安全?
java 四中引用
Jni 用过么?
多进程场景遇见过么?
关于 handler,在任何地方 new handler 都是什么线程下
sqlite 升级,增加字段的语句
bitmap recycler 相关
强引用置为 null,会不会被回收?
glide 使用什么缓存?
Glide 内存缓存如何控制大小?
如何保证多线程读写文件的安全?
携程
Activity 启动模式
广播的使用方式,场景
App 中唤醒其他进程的实现方式
AndroidManifest 的作用与理解
List,Set,Map 的区别
HashSet 与 HashMap 怎么判断集合元素重复
Java 中内存区域与垃圾回收机制
EventBus 作用,实现方式,代替 EventBus 的方式
Android 中开启摄像头的主要步骤
网易
concurrenthashmap
volatile
synchronized 与 Lock
Java 线程池
wait/notify
NIO
垃圾收集器
Activity 生命周期
AlertDialog,popupWindow,Activity 区别
小米
String 为什么要设计成不可变的?
fragment 各种情况下的生命周期
Activity 上有 Dialog 的时候按 home 键时的生命周期
横竖屏切换的时候,Activity 各种情况下的生命周期
Application 和 Activity 的 context 对象的区别
序列化的作用,以及 Android 两种序列化的区别。
List 和 Map 的实现方式以及存储方式。
静态内部类的设计意图。
线程如何关闭,以及如何防止线程的内存泄漏
白嫖 2020 最新大厂面试题及其解析
金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为 Android 高级工程师的系统且全面的学习资料。涵盖了 Android 初级——Android 高级架构师进阶必备的一些学习技能。
附上:我们之前因为秋招收集的二十套一二线互联网公司 Android 面试真题(含 BAT、小米、华为、美团、滴滴)和我自己整理 Android 复习笔记(包含 Android 基础知识点、Android 扩展知识点、Android 源码解析、设计模式汇总、Gradle 知识点、常见算法题汇总。)
对于很多初中级 Android 工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对 Android 开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
评论