我是从小公司跳出来的,最终入职OPPO,Android面试经验分享

前言

我是从小公司跳出来的,最终入职OPPO,说实话这段时间的经历让我深深地感受到,我们为跳槽做的一些临时抱佛脚的提升跟那些大佬的沉淀比起来太渺小了。我们都知道找资料学习、刷面试题,但也许只能应付这一次的面试,后面还是会技术发愁,那些短时间背下来的东西迟早会忘掉,大家还是做好长期提升自己的准备,好好沉淀的东西最后才是属于自己的。

说说当时的面试过程,我是内推获得的面试机会,很感谢当时帮我内推的兄弟,总共三轮面试,两轮技术,一轮HR面,当天面试结束。

我10:10分到的公司,10:30开始面试,第一轮面试将近一个小时,聊的点我基本上都答得上来,自我感觉良好。然后面试官让我等一下,他去叫他们老大来给我二面,我等了有二十几分钟吧,二面有一个多小时,这次问的比较深,有些地方答的有些嗑吧,总体来说我自己是满意的。HR面约到下午了,整个流程下来每轮面试官都让人感觉很不错,我自己做的准备也让我面试感觉下来很爽。

面试题

我把面试遇到过的以及自己学习用到过相关内容都整理到一起了,方便自己进行复盘和后续的查漏补缺,如过有需要的也可以文末扫码领取

第一章 Java基础

  • 静态内部类和非静态内部类的比较
  • 多态的理解与应用
  • java方法的多态性理解
  • java中接口和继承的区别
  • 线程池的好处,详解,单例(绝对好记)
  • 线程池的优点及其原理
  • 线程池的优点(重点)
  • 为什么不推荐通过Executors直接创建线程池
  • 不怕难之BlockingQueue及其实现
  • 深入理解ReentrantLock与Condition
  • Java多线程:线程间通信之Lock
  • Synchronized 关键字原理
  • ReentrantLock原理
  • HashMap中的Hash冲突解决和扩容机制
  • JVM常见面试题
  • JVM内存结构
  • 类加载机制/双亲委托
    在这里插入图片描述

第二章 Android基础

  • Activity知识点(必问)
  • Fragment知识点
  • Service知识点
  • Intent知识点

第三章 UI控件篇

  • 屏幕适配
  • 主要控件优化
  • 事件分发与嵌套滚动
  • 动态化页面构建方案
    在这里插入图片描述

第四章 网络通信篇

  • 网络协议

第五章 架构设计篇

  • MVP架构设计
  • 组件化架构

第六章 性能优化篇

  • 启动优化

  • 内存优化

  • 绘制优化

  • 安装包优化
    在这里插入图片描述
    第七章 源码流程篇

  • 开源库源码分析

  • Glide源码分析

  • Android面试题:Glide

  • day 20 面试题:Glide面试题

  • 聊一聊关于Glide在面试中的那些事

  • 面试官:简历上如果写Glide,请注意以下几点…

  • OkHttp源码分析

  • okhttp连接池复用机制

  • okhttp 流程和优化的实现

  • 一篇让你受用的okhttp分析

  • OkHttp面试之–OkHttp的整个异步请求流程

  • OkHttp面试之–HttpEngine中的sendRequest方法详解

  • OkHttp解析大总结

  • Okhttp任务队列工作原理

  • Android高频面试专题 - 架构篇(二)okhttp面试必知必会

  • Android 网络优化,使用 HTTPDNS 优化 DNS,从原理到 OkHttp 集成

  • Retrofit源码分析

  • RxJava源码分析

  • RxJava原理与源码分析
    在这里插入图片描述
    第八章 新技术篇

  • 实战问题篇

第九章 面试篇

  • 开源文档
  • 面试题合集
    1. android事件分发机制,请详细说下整个流程
    2. android view绘制机制和加载过程,请详细说下整个流程
    3. android四大组件的加载过程,请详细介绍下
    4. Activity的启动模式
    5. A、B、C、D分别是四种Activity的启动模式,那么A->B->C->D->A->B->C->D分别启动,最后的activity栈是怎么样的
    6. Activtiy缓存方法
    7. Service的生命周期,两种启动方法,有什么区别
    8. 怎么保证service不被杀死
    9. 静态的Broadcast和动态的有什么区别
    10. Intent可以传递哪些数据类型
    11. Json有什么优劣势、各有什么特点
    12. 一个语言的编译过程
    13. 动画有哪几类,各有什么特点
    14. Handler、Looper消息队列模型,各部分的作用
    15. 怎样退出终止App
    16. Android IPC:Binder原理
    17. 理解Window和WindowManager
    18. Bitmap的处理
    19. 如何实现一个网络框架(参考Volley)
    20. ClassLoader的基础知识
    21. 插件化框架描述:dynamicLoadApk为例子
    22. 热修复:Andfix为例子
    23. 线程同步的问题,常用的线程同步
    24. Asynctask和线程池,GC相关(怎么判断哪些内存该GC,GC算法)
    25. 网络
    26. 数据库性能优化:索引和事务,需要找本专门的书大概了解一下
    27. APK打包流程和其内容
    28. 网络劫持的类型原理:可以百度一下了解一下具体概念
    29. bundle的数据结构,如何存储
    30. listview内点击buttom并移动的事件流完整拦截过程
    31. Android的IPC通信方式,线程(进程间)通信机制有哪些
    32. 操作系统进程和线程的区别
    33. HashMap的实现过程
    34. Java的线程如何实现
    35. Java中内部类为什么可以访问外部类
    36. 设计移动端的联系人存储与查询的功能,要求快速搜索联系人,可以用到哪些数据结构?
    37. 红黑树特点
    38. ConcurrentHashMap内部实现,HashTable的实现被废弃的原因
    39. HandlerThread是什么
    40. IntentService是什么
    41. class和dex
    42. 过度回执、卡顿优化
    43. apk瘦身
    44. ANR的形成,各个组件上出现ARN的时间限制是多少
    45. Serializable和Parcelable的区别
    46. Sharedpreference源码简述
    47. 操作系统如何管理内存的
    48. 浏览器输入地址到返回结果发生了什么
    49. activity的生命周期
    50. 面试常考的算法
      在这里插入图片描述

结尾

以上就是我的学习和面试积累,有自己面试经历过的,也有整理的一些大厂面试题,篇幅有限,具体内容就不展示了,我已经整理成文档了,如果觉得可以帮到你,可以直接私信扫码领取
在这里插入图片描述

还是开头说的,仅靠面试期间临时抱佛脚和刷题对自身发展不是长久之计,做好长期提升的规划,好好沉淀每一次的学习和面试经历,把这些最终都转化成属于自己的东西才是实质上对自己最有用的。

猜你喜欢

转载自blog.csdn.net/weixin_48091641/article/details/121927972