Android2022大厂面试集锦总结

java面试题

设计模式

  • 常用的设计模式有哪些,以及使用场景
  • 举例说明Android中有哪些

mvvm、mvc、mvp

  • 优缺点以及使用场景

多线程如何避免数据竞争

HashMap

  • 它的 get 和 put 时间复杂度,最差情况呢

Java 的内存模型

  • 简述内存模型定义?
  • 说说看线程之间的通信机制有哪些呢?
  • Java的并发采用的是哪种?
  • 说说JMM定义了哪些操作来完成主内存和工作内存的交互操作?
  • 说说对内存交互基本操作的三个特性的理解?
  • 说说看volatile如何生效的?
  • 说说看Java是如何保证有序性的?
  • Java内存模型怎么通过happens-before原则来保证有序性?
  • JMM的存在同时限制了重排序吗?

List< Object > 和 List < String > 是什么关系

GC

  • gc算法有哪些以及原理
  • 说说分代算法对象回收的过程

线程池

  • 实现线程池有哪几种方式,优缺点?
  • 简述线程池执行任务的原理?

多线程

  • 并发编程三要素?
  • 创建线程的有哪些方式?
  • 实现可见性的方法有哪些?
  • 多线程的价值?
  • 创建线程的三种方式的对比?
  • 线程的状态流转图
  • 常用的并发工具类有哪些?
  • CyclicBarrier和CountDownLatch的区别
  • synchronized的作用?
  • volatile关键字的作用?
  • 什么是CAS?CAS有问题?
  • 什么是Future?
  • 什么是AQS?
  • AQS支持两种同步方式?
  • ReadWriteLock是什么?
  • FutureTask是什么?
  • synchronized和ReentrantLock的区别?
  • 什么是乐观锁和悲观锁?
  • 线程B怎么知道线程A修改了变量?
  • synchronized、volatile、CAS比较?
  • sleep方法和wait方法有什么区别?
  • ThreadLocal是什么?有什么用?
  • 为什么wait()方法和notify()/notifyAll()方法要在同步块中被调用
  • 多线程同步有哪几种方法?
  • 线程的调度策略?
  • ConcurrentHashMap的并发度是什么
  • Java死锁以及如何避免?
  • 死锁的原因?
  • 怎么唤醒一个阻塞的线程?
  • 不可变对象对多线程有什么帮助?
  • 什么是多线程的上下文切换
  • 如果你提交任务时,线程池队列已满,这时会发生什么?
  • Java中用到的线程调度算法是什么?
  • 什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing)?
  • 什么是自旋
  • JavaConcurrency API中的Lock接口(Lockinterface)是什么?对比同步它有什么优势?
  • 单例模式的线程安全性
  • Semaphore有什么作用
  • Executors类是什么?
  • 线程类的构造方法、静态块是被哪个线程调用的
  • 同步方法和同步块,哪个是更好的选择?
  • Java线程数过多会造成什么异常?

android面试题

事件分发

  • 事件分发中requestdissallow的有啥作用,代码层面会做些什么

jetpack

  • LiveData 的 setValue 和 postValue 的区别

binder

  • binder原理

Handler

  • handler原理
  • handler中消息时间用的是啥时间
  • 没有消息的时候是怎么处理的,底层原理是啥?
  • postdelay原理是啥

view绘制流程

事件分发

  • TouchEvent事件分发机制
  • KeyEvent事件分发机制

性能优化

Activity

  • Activity间传递大量数据

SurfaceView和TextureView区别分析

动画

  • 动画有哪些

ANR

  • anr是什么?
  • anr发生的原理是什么?
  • 如何避免anr?
  • anr和内存泄漏有啥关系

RecyclerView

  • 有哪四级缓冲
  • 四级缓冲原理

bitmap

  • bitmap的内存存放在什么位置?哪些是在native哪些是在Java层
  • 大图怎么加载?
  • 大图加载到内存中大小的计算?
  • glide加载一张网络图片到内存中,内存大小是多少,举例说明?
  • bitmap分块加载的原理是啥?

kotlin面试题

  • kotlin添加方法有哪几种方式
  • kotlin高阶函数有哪些,用过哪些
  • Kotlin 中的单例编译到 Java 中是什么样的?

计算机网路

HTTP 、HTTPS

  • HTTP 和 HTTPS有什么区别
  • 简述HTTPS加密过程
  • HTTPS如何保证数据安全的
  • 怎么保证客户端公钥是服务器的,而不是别人冒充的

第三方库

Rxjava

  • rxjava切换线程的原理

Glide

  • glide缓冲原理
  • Lrucache原理

其他

  • 跨平台方案有些,优缺点?
  • aop是什么了解么?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值