Android 开发面试心得:BAT 大厂 Android 面试题整理,面试 8 家大厂后终于拿到 Offer
HashMap 实现原理,ConcurrentHashMap 的实现原理
BroadcastReceiver,LocalBroadcastReceiver 区别
Bundle 机制
Handler 机制
android 事件传递机制
线程间 操作 List
App 启动流程,从点击桌面开始
*动态加载
类加载器
OSGI
Https 请求慢的解决办法,DNS,携带数据,直接访问 IP
GC 回收策略
画出 Android 的大体架构图
描述清点击 Android Studio 的 build 按钮后发生了什么,大体说清一个应用程序安装到手机上时发生了什么;
对 Dalvik、ART 虚拟机有基本的了解;
Android 上的 Inter-Process-Communication 跨进程通信时如何工作的;
App 是如何沙箱化,为什么要这么做;
权限管理系统(底层的权限是如何进行 grant 的)
进程和 Application 的生命周期;
系统启动流程 Zygote 进程 –> SystemServer 进程 –> 各种系统服务 –> 应用进程
recycleview listview 的区别,性能
排序,快速排序的实现
树:B 树的介绍
图:有向无环图的解释
TCP/UDP 的区别
synchronized 与 Lock 的区别
volatile
Java 线程池
Java 中对象的生命周期
类加载机制
双亲委派模型
Android 事件分发机制
MVP 模式
RxJava
抽象类和接口的区别
集合 Set 实现 Hash 怎么防止碰撞
JVM 内存区域 开线程影响哪块内存
垃圾收集机制 对象创建,新生代与老年代
二叉树 深度遍历与广度遍历
B 树、B 树
消息机制
进程调度
进程与线程
死锁
进程状态
JVM 内存模型
并发集合了解哪些
ConCurrentHashMap 实现
CAS 介绍
开启线程的三种方式,run()和 start()方法区别
线程池
常用数据结构简介
判断环(猜测应该是链表环)
排序,堆排序实现
链表反转
动态权限适配方案,权限组的概念
网络请求缓存处理,okhttp 如何处理网络缓存的
图片加载库相关,bitmap 如何处理大图,如一张 30M 的大图,如何预- - 防 OOM
进程保活
listview 图片加载错乱的原理和解决方案
https 相关,如何验证证书的合法性,https 中哪里用了对称加密,哪里用了非对称加密,对加密算法(如 RSA)等是否有了解
Bitmap 使用时候注意什么?
Oom 是否可以 try catch ?
内存泄露如何产生?
适配器模式,装饰者模式,外观模式的异同?
ANR 如何产生?
String buffer 与 string builder 的区别?
如何保证线程安全?
java 四中引用
Jni 用过么?
多进程场景遇见过么?
关于 handler,在任何地方 new handler 都是什么线程下
sqlite 升级,增加字段的语句
bitmap recycler 相关
强引用置为 null,会不会被回收?
glide 使用什么缓存?
Glide 内存缓存如何控制大小?
如何保证多线程读写文件的安全?
数据结构中堆的概念,堆排序
死锁的概念,怎么避免死锁
ReentrantLock 、synchronized 和 volatile(n 面)
HashMap
singleTask 启动模式
用到的一些开源框架,介绍一个看过源码的,内部实现过程。
消息机制实现
ReentrantLock 的内部实现
App 启动崩溃异常捕捉
事件传递机制的介绍
ListView 的优化
二叉树,给出根节点和目标节点,找出从根节点到目标节点的路径
模式 MVP,MVC 介绍
断点续传的实现
集合的接口和具体实现类,介绍
TreeMap 具体实现
synchronized 与 ReentrantLock
手写生产者/消费者模式
逻辑地址与物理地址,为什么使用逻辑地址
一个无序,不重复数组,输出 N 个元素,使得 N 个元素的和相加为 M,* 给出时间复杂度、空间复杂度。手写算法
Android 进程分类
前台切换到后台,然后再回到前台,Activity 生命周期回调方法。弹出 Dialog,生命值周期回调方法。
Activity 的启动模式
Activity 启动模式
广播的使用方式,场景
App 中唤醒其他进程的实现方式
AndroidManifest 的作用与理解
List,Set,Map 的区别
HashSet 与 HashMap 怎么判断集合元素重复
Java 中内存区域与垃圾回收机制
EventBus 作用,实现方式,代替 EventBus 的方式
Android 中开启摄像头的主要步骤
今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如 Handler 机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。
最后我在这里分享一下这段时间从朋友,大佬那里收集到的一些 BAT 面试真题解析,里面内容很多也很系统,包含了很多内容:Android 基础、Java 基础、Android 源码相关分析、常见的一些原理性问题等等,可以很好地帮助我们深刻理解 Android 相关知识点的原理以及面试相关知识(还有算法相关的学习视频)。这份学习文档把大厂面试中常被问到的技术点整理成了 PDF ,包知识脉络 + 诸多细节;还有 高级架构技术进阶脑图,为了帮助大家学习提升进阶,也节省大家在网上搜索学习文档笔记的时间来学习,也可以分享给身边好友一起学习。大家可以直接去我 GitHub地址:https://github.com/733gh/Android-T3 中查阅。
评论