前言
Android面试神器推荐:安卓面试宝典,更多面试相关内容可在小程序中查看,小程序还提供了面试模拟功能。
它是免费的,扫码直接使用
面试必知知识点
1. Java
-
JVM是什么
参考:JVM是什么?
-
JVM运行机制
参考:JVM的运行原理 -
JVM内存区域
参考:JVM内存区域你了解吗?
-
新生代和老年代介绍 (更多答案详见 => 微信小程序:安卓面试宝典)
-
为什么新生代需要两个survivor区?
-
JVM常见面试题
-
Java多线程基础知识学习
-
Synchronized实现原理
-
Java中的各种锁
-
为什么DCL单例模式需要volatile
-
什么是CAS机制?
2. Android
-
Activity的生命周期
参考:activity生命周期
-
横竖屏切换对Activity的影响
-
Activity的四种启动模式
-
Service知识详解 (更多答案详见 => 微信小程序:安卓面试宝典)
-
startService和bindService的区别
-
如何在Service中更新UI?
-
广播知识详解
-
广播引起anr的时间限制是多少?
-
ContentProvider 详解
-
Fragment生命周期
-
Activity中有一个Fragment,在启动它们时的生命周期加载顺序是什么?
-
FragmentPagerAdapter和FragmentStatePagerAdapter区别
-
RecyclerView 缓存机制
-
RecyclerView 优化
-
Android的三种动画详解
-
高效加载大图、多图的解决方法
-
如何加载一张Bitmap大图?
-
线程池原理
-
线程池里面的几把锁
-
scheduleAtFixedRate和scheduleWithFixedDelay的区别
-
ThreadLocal的原理
-
Handler 机制详解
-
在任意线程给Handler发送的消息为什么会在创建Handler的那个线程被执行?
-
Handler.postDelay()的原理
-
Handler sendMessage和post的区别
-
事件分发机制详解
-
View绘制流程与源码分析
-
getWidth与getMeasuredWidth的区别
-
PhoneWindow、DecorView、ViewRootImpl的关系
-
为什么在onResume之前(包括onResume)获取不到View的宽高
-
如何在onCreate中获得View的宽高
-
view.post为什么能获取到正确的宽高?
-
子线程为什么不能直接更新UI?
-
性能优化
-
常见内存泄漏原因和解决办法
-
常见异常及解决办法
-
全局异常如何捕获处理
-
ANR产生的原因、定位
-
Native崩溃及错误原因、分析与定位
-
JNI
-
Jetpack 架构概览
-
Kotlin
-
let/run/with/apply/also函数
-
Kotlin 单例模式
-
主构造函数、属性、init、次构造函数执行顺序
-
协程
-
协程到底是什么?
-
协程到底运行在哪个线程里?
-
协程到底是怎么切换线程的?
-
OkHttp 详解
-
OkHttp 连接池原理
-
Retrofit 详解
-
RxJava 详解
-
RxJava: 使用场景总结
-
Glide 详解
-
GreenDao 使用指南
-
EventBus 原理
-
Android版本新特性(6-13)
-
屏幕适配
更多内容见 => 微信小程序:安卓面试宝典
3. 设计模式
- 23种设计模式
- 设计模式的七大原则
- 你都用过哪些设计模式?
- 单例模式的多种实现
- 装饰者模式和代理模式的区别
4. 数据结构
- 常见数据结构
- ArrayList 原理
- 哈希表原理
- HashMap原理
- HashMap的hash算法
- ConcurrentHashMap 详解
- LinkedHashMap 详解
- LruCache 详解
- HashMap是线程安全的吗?
- HashTable是线程安全的吗?如何实现线程安全的?
- ConcurrentHashMap是如何实现线程安全的?
更多内容见 => 微信小程序:安卓面试宝典
5. 网络
- TCP/IP协议详解
- Http 协议详解
- Http与Https的区别及Https详解
- 数据传输协议汇总
- HTTP常见状态码
- TCP与UDP的区别
- TCP为什么要三次握手,四次挥手
- 描述一下客户端发送一次http请求到收到response的过程
- Https如何保证安全性?
- 说一下Http状态码401和403
面试题
-
讲一下Handler的原理
-
线程安全的数据结构,你有用过哪些?
-
HashTable 线程安全的原理是?
参考:java中为什么Hashtable是线程安全的,而HashMap是线程不安全的?还有ArrayList为什么是线程不安全的,Vector是线程安全的
-
ConcurrentHashMap 线程安全的原理是?
-
Synchronized都可以修饰什么?区别是什么?
-
讲一下类的加载
参考:JVM之类加载阶段详解
-
Fragment的生命周期
-
线程池的原理
-
setContentView原理
-
ViewModel原理,是如何实现数据不丢失的: 为什么 Activity 都重建了 ViewModel 还存在?
-
FragmentPagerAdapter 和 FragmentStatePagerAdapter 的区别是什么?
-
线程如何切换?
-
描述一下客户端发送一次http请求到收到response的过程(网络协议中从应用层到链路层封装数据)
更多内容见 => 微信小程序:安卓面试宝典
面试技巧
-
程序员面试技巧
-
参考:程序员面试的7个技巧
-
HR面试常见问题
参考:人事面常见问题汇总及参考
面试神器推荐
免费+持续更新
在准备面试的过程中,经常会为了找资料,筛选资料而浪费掉大量精力和时间,如果你也有这个问题和不爽,那么你可以试试这个小程序:安卓面试宝典。它是完全免费的。
它提供了:
- Android 初中高级 知识
- 专项 / 高频 / 大厂 面试真题
- 面试模拟功能 助你一臂之力
希望你能花一分钟时间,来试试看,万一捡到宝了呢
最后,祝你找到心满意足的工作。