2021.3 Android 面试题总结
java
- 面向对象特性
- 解释一下什么是多态
- 重写与重载的区别
- == 和 equals 的区别
- hashCode 方法 和 equals 方法有什么关系
- 解释一下内部类的用处
- 静态方法是否可以直接访问非静态方法
- java访问修饰符,不写任何修复符 默认的作用域
- jvm GCROOT 对象都有那些
- jvm GC 算法都有那些
- java 中提供线程池都有那些
- 创建线程池时各个参数都是什么含义
- jvm 内存模型 分几块
- 对象放在那个内存块中
- GC 清除内存时 是清除的那块内存
- java 集合框架中 HashMap 的数据结构,容量扩充是怎么样的
- ArrayList 和 LinkedList 的区别,优缺点
- String 和 StringBuffer/StringBuilder 的区别
- List 和 Map 的区别
- 怎么去除Vector中的重复元素
- 怎么防止死锁
- 怎么直接跳出多重for循环
- NIO
- 内存抖动是怎么一回事
- java 内同步锁 锁实例方法 和 锁 静态方法的区别
- java 的异常机制,捕获 和 处理 的关键字是哪个
- 用过哪些设计模式,单例模式有哪几种,为什么要用建造者模式
Android
- Handler机制,消息队列数据结构,为什么要用这种数据结构
- Binder 机制
- 事件派发机制
- View 绘制过程
- 本地服务 和 远程服务
- 服务的生命周期
- 多进程应用,当两个进程都启动后,Application 中 onCreate 方法被调用几次
- 静态注册的广播 和 动态注册的广播 如果监听的是一个广播事件,哪种广播先接收到广播事件
- 怎么优化Android应用
- 怎么缩减Apk包的大小
- Android中有那些内存泄露
- FragmentPageStateAdapter 和 FragmentPageAdapter 的区别
- Android 11 特性
- Android 暗黑模式实现
- Activity 生命周期
- Activity A 界面 启动B 界面 ,B界面关闭,A界面和B界面的生命周期顺序
- 界面适配
- LinearLayout 和 RelativeLayout 的优缺点
- Fragment 与 Activity 的通迅方式
- SQLite 数据库操作
- Android组件化理解
- Android 原生应用 和 混合应用的看法
- 对Kotlin 有什么看法,对协程的了解
- 对Flutter有什么看法
- 目前国内哪些应用 Flutter 用的比较多
- 对Android哪些方面比较擅长
- jetpack compose 的理解 以及发展趋势
- 除了 compose ,还有哪些是声明式UI框架,以及声明式UI的优点
- MVC MVP MVVM 的理解。如果新开一个项目,怎么做选择。
网络
- TCP 与 UDP 的区别
- TCP 3次握手 和 4次挥手
- TCP 和 HTTP 的比较
- TCP 是在网络哪一层的,Http 是在哪一层的
- TCP 滑动窗口 ,是什么意思
- TCP怎么保持长链接的
- MQTT 的 订阅模式是怎么样的
- Netty原理机制,Netty 分析,Netty中通道空闲状态 是怎么确认的
- OSI 七层模型
- 怎么 检测 Android 网络状态
- 弱网状态消息处理
- SSE连接机制
- HTTP 数据包格式
- Socket 的解释
源码解析
- OkHttp 请求过程,都有哪些拦截器?当两个界面调用网络请求时,请求线程是否是在一个线程池中的
- Retorfit 工作原理
- Glide 三级缓存解析
- Netty 解析
- RecyclerView 三级缓存解析
- ListView 解析
- Rxjava 线程调度原理,以及有哪些操作符,有什么作用
- View 的绘制过程源码
- ARouter 原理
其他琐碎问题
- 上家公司为什么辞职
- 为什么来杭州
- 上家公司薪水情况
- 上家公司 老板 同事,和你自己觉得你有什么优缺点
- 组长和普通员工工作方式上有什么区别
- 对未来的发展方向
- 最近看的哪一本书
- 平常在什么地方获取知识
- 你的审美如何
- 从TO B 转 到 TO C 应该注意什么
- 多部门沟通中应该注意什么
- 为什么薪资要比上家公司高,高的理由
- 从毕业到参加工作,有哪些成长
- 以前有没有因为自己,导致项目出现问题,怎么解决,怎么理解这一块