第一次观看我文章的朋友,可以关注、点赞、转发一下,每天分享各种干货技术和程序猿趣事
前言
随着移动终端的快速发展,Android开发人员也越来越多,Android开发市场也进入了一个饱和的状态,Android开发人员也面临着难找一份好工作的处境。
而找工作的第一关就是面试,一个好的面试往往能很好的提高你的入职几率,下面我总结了一些本人在一些大厂的面试总结,希望的观看的小伙伴有所帮助。

View面试专题
- View的滑动方式
- View的事件分发机制
- View的加载流程
- View的measure layout 和 draw流程
- 自定义view需要注意的几点
- ACTION_DOWN没有拦截,ACTION_MOVE ACTION_UP还会拦截吗
多线程专题
- 什么是线程
- 线程的状态
- 线程的创建
- 线程中断
- Thread为什么不能用stop方法停止线程
- 重入锁与条件对象,同步方法和同步代码块
- volatile关键字
- java内存模型
- 原子性 可见性 有序性
- 线程池ThreadPoolExecutor
- 线程池的种类
- 线程同步机制与原理,举例说明
- arrayList与linkedList的读写时间复杂度
- 为什么HashMap线程不安全(hash碰撞与扩容导致)
- 进程线程的区别
- Binder的内存拷贝过程
- 传统IPC机制的通信原理(2次内存拷贝)
- Java内存模型(记住堆栈是内存分区,不是模型)
- 类的加载过程
- 什么情况下会触发类的初始化
- 双亲委托模式
- 双亲委托模式的好处
- 死锁的产生条件,如何避免死锁
- App启动流程
- Android单线程模型
- RecyclerView在很多方面能取代ListView,Google为什么没把ListView划上一条过时的横线?
- HashMap如何保证元素均匀分布
数据结构面试专题
- 常用数据结构简介
- 并发集合了解哪些?
- 列举java的集合以及集合之间的继承关系
- 容器类介绍以及之间的区别
- List,Set,Map的区别
- HashMap的实现原理
- HashMap如何put数据(从HashMap源码角度讲解)?
- HashMap如何get数据?
- 当两个对象的hashcode相同,即发生碰撞时,HashMap如何处理
- 如果两个键的hashcode相同,如何获取值对象?
- hashMap如何扩容
- ConcurrentHashMap的实现原理
- ArrayMap和HashMap的对比
- HashTable实现原理
- HashMap和HashTable的区别
- HashMap与HashSet的区别
- HashSet与HashMap怎么判断集合元素重复?
- 集合Set实现Hash怎么防止碰撞
- ArrayList和LinkedList的区别,以及应用场景