【面试】2年Android菜鸡金九银十面试之旅

本文汇总了多个公司技术面试中的常见问题,包括搜索、IM库、内存泄漏、ANR定位、网络原理、内存优化、MVP/MVVM比较等,旨在提供面试参考和学习素材。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  前前后后加起来面了3个月,觉得自己还是菜鸡一个,还是平时没好好下功夫刷算法题,系统化,体系化地看原理,很多东西停留在表面,一被深入提问就支支吾吾答不上来。下面是面试过的一些公司的技术面面试题,希望能给需要的人一点参考。

一、百度——搜索

     一面 面试时间1小时

  1. 项目里IM库的整体架构?
  2. LeakCanary的底层原理?
  3. 内存泄漏有哪几种?怎么解决的?
  4. WebView缓存预加载是怎么做的?
  5. 如何与前端进行交互的?有哪些交互方法?
  6. ANR有哪几种?是怎么定位的?
  7. OkHttp的底层原理
  8. hashMap底层原理
  9. 死锁有哪些解决方法?
  10. https的原理是怎么样的?
  11. 项目用的是MVC,MVP还是MVVM?
  12. Kotlin相比java有哪些优势?
  13. Kotlin协程有用过吗?有哪些优点?
  14. 如何定位友盟上的Bug?
  15. 算法:给定一个数组和目标值,找出该数组中加和等于目标值的两个数的数组下标。升级问题:找出加和等于目标值的三个数的数组下标。

     二面 面试时间1小时

  1. 介绍项目,分工,迭代,时间周期,规模
  2. ANR是什么?四大组件导致ANR的时长是多长?
  3. 崩溃率怎么定位?如何定位?是多少崩溃率?
  4. 负责哪个项目模块?难点是什么?怎么做的?有什么效果?
  5. 项目中视频上传是怎么选择的压缩库?为什么要做这个选择?
  6. 绘制优化又是怎么做的优化?平均层数是多少层?
  7. 内存泄漏是怎么定位的?为什么会发生内存泄漏?
  8. 四大引用分别是什么?强引用,软引用,弱引用,虚引用
  9. Activity的四种启动模式?相机是哪种启动模式?
  10. Activity栈是由谁管理的?
  11. 同一个Activity栈中可能有不同的进程在里面吗?
  12. Application Context,Activity的context,Service的context, BroadCast的context和contentProvider的context有什么区别?应该在什么时候用呢?
  13. MVP和MVVM的区别?
  14. 为什么离职?有目标城市吗?
  15. 平时怎么学习?自学吗?
  16. 算法题:找出两个字符串的最大公共子串?
二、荔枝App

笔试(30min 4道题)

  1. 哪些情况会出现内存泄漏?如何定位内存泄漏?
  2. 需要下载一张64M的图片并展示,尽可能完善地设计一个方案
  3. 给定字符串A和字符串B,在单线程中找出字符串B中第一次出现字符串A的位置;如果是多线程应该怎么找呢?
  4. 描述解决过的一个专业问题,是如何分析定位和解决问题的?

面试(1h)项目配八股交叉来的

  1. 自我介绍
  2. 内存泄漏(EventBus内存泄漏,Handler内存泄漏)什么是内存泄漏?为什么会产生内存泄漏?
  3. Lint定位进行绘制优化是怎么优化的?除了Lint还用什么工具定位?
  4. onResume()时可以获取到自定义View的宽高吗?自定义View的绘制流程?
  5. 说说Handler机制?
  6. 说说进行一次网络连接经历的过程?(从DNS到TCP到Http到Https)
  7. 说说网络链接中的数据加解密?为什么要使用对称加密而不使用非对称加密?
  8. 从事过项目推进的角色吗?如果要让你从事项目推进的角色你觉得要把控哪些节点呢?
  9. 了解JetPack库吗?
  10. liveData?
  11. 为什么使用MVVM?有什么好处?
  12. 从MVC迁移到MVVM有哪些东西是需要考虑的?
  13. 了解模块化和组件化吗?
  14. 将UI展示和数据解耦有什么好处呢?
  15. 了解过协程吗?说说协程是什么有什么优点?
  16. 了解引用类型吗?有哪些引用类型分别是什么?
  17. 了解垃圾回收机制的分代吗?为什么要使用老年代?
  18. EventBus的底层源码了解过吗?
  19. 平时怎么学习?
  20. 还用过哪些第三方库?使用过程中出现问题怎么定位和解决呢?
  21. 说说你做过的印象比较深的一项优化?(讲了WebView预加载)
  22. 那下载资源包出现每次都下载吗?(有版本号)
  23. 那是使用单线程下载吗?怎么下载的?
  24. 如果要优化下载速度怎么优化呢?(答了差分和多线程)
三、科大讯飞——教育

笔试+性格测试

笔试(牛客网,60min)

  1. 单选20(计算机组成原理,计算机网络,操作系统,设计模式,java,Android都有涉及)
  2. 算法题(二叉树相关,找一棵树中有左右子树的结点数)

面试(30min) 

  1. 说说tcp和udp的区别
  2. 说说http和https的区别
  3. 说说hashmap
  4. 说说项目中做过的记忆最深的点
  5. 说说view事件的分发机制
  6. 说说当一个view左右滑一个view上下滑要怎么解决滑动冲突?在父view拦截还是子view拦截?
  7. 说说handler机制?
  8. 说说binder原理?
  9. 说说LRUcache?
  10. 抓过包吗?为什么抓到的包还是明文?
  11. ank和syn有什么区别?
  12. 协程和线程池有什么区别?
  13. view的三种绘制方式?有什么区别?
四、富途牛牛

面试时长:1h30min

  1. 介绍消息机制
  2. 介绍Kotlin协程,Kotlin如何捕获异常,运行在同一个线程中的两个协程异常会相互影响吗, Kotlin内联函数
  3. 介绍项目中的设计模式
  4. 介绍MVVM,MVC
  5. 介绍Glide的缓存机制
  6. 介绍内存优化
  7. 介绍页面的绘制优化
  8. 介绍序列化方法
  9. 智力题:36匹马,6个赛道,赛出前三名,要赛几次?
  10. 算法题:股票买卖
五、阿里——UC

一面(1h8min)

  • 项目相关
  • View的绘制流程
  • 应用程序的启动流程
  • Acitivity和Application哪个先启动?
  • OkHttp 用了什么设计模式原理?
  • 为什么使用Glide?对比别的图片库的优势?
  • 工作中最有挑战的事是什么?
  • 薪资,工作强度,期望薪资,为什么离职等
六、 欢聚集团——bigo

面试时长40分钟

  1. 介绍项目,画一下项目的架构图,两个没有依赖关系的模块之间如何通信
  2. 怎么处理线上bug,遇到了哪些棘手的线上bug怎么解决的
  3. webView加载速度优化,怎么优化的,之前多少秒,之后多少秒
  4. 开发过程中遇到的多线程问题,假设有1000个上传任务,怎么设计线程池,核心线程数设置为多少比较合适
  5. 说下mvp和mvvm的最大区别是什么
  6. 说下并发情况下如何使用集合,用currentHashmap有什么弊端吗
  7. cas和synchronized有什么区别?
  8. 说下内存优化,怎么优化的,leaakcanary的原理是什么
  9. 觉得自己当前项目有什么地方是用的不爽的,要怎么改进?
七、中望软件——看图大师

笔试: 20道单选6道多选1道编程

编程:找出字符串中第一个不重复的字母的位置输出

面试:

java/Android

  1. 内存泄露怎么优化的
  2. 屏幕适配怎么做的
  3. 类加载器的双亲委派
  4. Activity的启动模式
  5. Android13 14的新特性
  6. 自定义view怎么做的
  7. onDraw中有什么注意事项
  8. openGL有了解过吗
  9. handler机制(原理,主线程,内存屏障)

C++(因为我说我工作没用过就问了我基础)

  1. 说说指针和引用的区别
  2. C++的三大特性
  3. 说说在头文件中写了静态变量会怎么样
  4. 说说友元
  5. 说说C++中的内存泄露
  6. 设计模式
八、酷狗
  1. 说一下LeakCanary的原理
  2. 怎么做到线上检测内存泄漏
  3. Profiler怎么用的,用了些什么
  4. 卡顿怎么检测的
  5. 线上怎么监测卡顿
  6. OkHttp原理
  7. 说说缓存拦截器的原理
  8. 缓存存哪了,怎么存,怎么管理,多用户情况下怎么处理
  9. DiskLRUCache
  10. 说自己做的最有难度和成就感的工作
九、字节——剪映
  1. 内存优化(内存泄漏监控,还有别的优化吗?)
  2. 绘制优化(怎么做的,include和merge有什么区别?还有别的优化吗?)
  3. WebView优化(怎么做的?资源包怎么更新?还有别的方案吗?)
  4. 介绍OkHttp框架
  5. 介绍线程同步的方式
  6. HTTPS是如何加解密的?
  7. 介绍建造者模式,建造者和创建的对象之间的关系
  8. 泛型<? Super T>和<? Extend T>
  9. 做题:Z字形打印二叉树
十、库洛
  1. 内存优化(LeakCanary原理,四种引用,可不可以监控service的内存泄漏,还有别的优化吗?)
  2. Bitmap 一张半透明的图片原先为ARGB_8888可以压缩为RGB_565吗
  3. 如果一张大图加载到内存发生了OOM可以怎么解决
  4. 介绍一下Glide库原理
  5. 了解过Glide库中的Bitmap Pool吗
  6. 为什么内存缓存里需要用弱引用缓存和LRUCache缓存两层
  7. LRUCache用什么样的数据结构实现的
  8. WebView预加载优化是怎样做的
  9. Handler机制
  10. 两条线程同步怎么实现
  11. Notify()是在哪里?
  12. 线程安全问题怎么解决?
  13. 想实现同时加载10个线程调用接口,然后统一刷新UI应该怎么做?
  14. CAS锁适用于什么样的场景?
  15. 介绍协程,和线程什么关系?
  16. 为啥离职
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值