Android面试被锤记:一面一个不吱声
  8GQSXwxgX6eP 2023年11月30日 19 0

前言

在老东家干了 6 年,发展一般,很想出去,但是一直没有合适的机会,只好一边准备面试一边学习。让我没有想到的是,突然收到了“毕业”通知,当然,不光是我,而是整个团队。

毕业,对于我这样的老员工来说是不错的结果,因为正好我也想出去,而且这次公司还能给不少补贴。

回家住了一段时间后,我开始了疯狂面试,今年的求职环境真的让人头疼,不要说张薪了,平薪都很难。

首先介绍下个人情况,双非本科,写码 8 年,其中 6 年在金融行业,算是有行业积累,但是核心业务并没有接触到。在金融行业工作,技术的提升是比较小的,好多流行的技术栈没有用过。

接下来就来看看我经历过的面试吧,一方面是给自己做一下总结,另一方面就是给大家一点点参考。

腾讯QQ

  1. 介绍glide的整体运作流程(大概的系统框架)
  2. 平时写的demo,项目有考虑过屏幕适配吗?
  3. glide被存放到服务器上,当服务器上的图片发生改变的时候,手机会更新新的图片吗?
  4. glide去load网络资源的时候发了请求,它是发了什么请求?
  5. okhttp有使用吗?知道retrofit和okhttp的区别吗?
  6. okhttp知道实现原理吗?有看过源码吗?
  7. 有使用过kotlin吧?kotlin从你的角度来说跟java有哪些比较大的区别
  8. 使用过 .let .also 这些高阶函数吗?简单说一些 .also .apply的区别?
  9. 说一个kotlin非空的问题,你之前有打包过jar包,如果项目中用的是kotlin写的,对外提供写好的方法接口,你的函数声明里的参数是非空的,这种情况下你觉得是安全的吗?
  10. 可以大概说一下类加载机制吗?
  11. 知道双亲委托机制吗?
  12. 比如在String.kt里加了一个扩展方法,String本身是没有这个方法,那调用的时候是怎么一个流程?
  13. JAVA的集合都有使用吧?说下ArrayList和数组的区别?操作ArrayList有哪些需要注意的地方?
  14. 说一下ArrayList线程不安全怎么解决的?
  15. 说一下HashMap的实现原理for循环和foreach有什么区别?
  16. 有过大图加载经验吗?Bitmap加载数据很大,比如10mb怎么处理?
  17. 事件分发机制,有没有在demo或者项目中遇到需要处理Touch事件的情况?
  18. RecyclerView的缓存机制知道吗?有没有遇到过闪图情况?
  19. 多线程问题 - 死锁 的必要条件和解除死锁的方法?
  20. 从浏览器输入一个网址到页面渲染的过程
  21. 服务端一般用80端口接受请求,如果同时有多个连接,服务端是怎么区分这些不同连接的?
  22. 三次握手,如果服务端返回的ACK报文丢失了服务端和客户端会发生什么?
  23. 平常有使用过数据库吗?知道主键是个什么东西吗?有些操作需要更新到数据库,但是中间有很多步骤,怎么保证这些步骤一次性全部生效?
  24. 你C++怎么样?知道什么是虚函数吗?指针呢?指针的指针呢?智能指针呢?

算法题:

  1. 删除升序链表中所有重复的元素
  2. 单例模式

反问

大华

  1. 自我介绍
  2. 说到Intent传Bitmap的问题 你用了全局变量 是不是得特别关注销毁和管理 管理周期(?有点怪)
  3. 假如说要查询数据库某一天的数据 一般我们数据精确到秒/毫秒级别的时间戳 这种时间格式怎么进行筛选 怎么去比较(说了from_unixtime和datetime,答得不是很好)
  4. Activity和Fragment之间数据通信和感知 Activity到Fragment Fragment到Activity通信,Fragment怎么调用Activity内方法
  5. 平时开发语言(Java,Kotlin只略懂) 问集合框架 什么情况用什么 互相进行比较
  6. 多线程异步任务 假设一个线程里有一个任务队列 怎么去保证任务的优先级顺序(说了Handler用延时和sendMessageAtFrontOfQueue)
  7. Android Studio工具的掌握情况 除了基本的编译之外的功能的了解
  8. 没有反问环节
  9. 在你的app里面用到了哪些技术 涉及到哪些安卓的基础知识
  10. 你们怎么开发的 有没有和后台服务交互 本地存储怎么做的
  11. 刚才说到涉及的界面是多Activity+多Fragment 为什么会出现Fragment这个组件 什么时候Activity会满足不了现有的界面开发(主要说了资源占用 生命周期)
  12. 除了刚说的Intent还有哪些Activity、Fragment之间通信的方式
  13. 其它通信方式(提到ipc通讯(顺带开始扯init fork zygote,AMS之类的 开始拖时间) rxbus,eventbus等)
  14. 你学习的一些框架比如okhttp和eventbus的源码有没有看过 平时通过什么方式学的
  15. 你有了解过这些框架的宏观架构和原理、核心实现吗 有没有具体了解过的框架、系统或者一个模块(大概靠回忆说了一下Retrofit的架构流程)
  16. 在项目中有没有碰到过吃力的事情和问题 是个什么样的情况 是怎么思考和解决的
  17. 反问 工作地点 总部 平时开发内容(系统应用/框架/app) 面评(没问题,不予置评)

得物安卓

  1. 自我介绍
  2. 问自我介绍中提到的安卓项目;
  3. activity的生命周期,各个阶段的方法名叫什么;
  4. 安卓的那些场景会导致内存泄漏;
  5. c++的垃圾回收机制(自己不懂安卓的内存泄漏,然后答了c++的内存泄漏,所以面试官问了c++);
  6. tcp的三次握手和四次挥手;
  7. 为什么tcp客户端的time-wait状态必须等待2MSL;
  8. http1.1与http2.0之间的区别;
  9. 线程安全的解决思路;
  10. 有哪几种锁;
  11. 进程通信方式,具体的使用场景;
  12. 二叉树的深度遍历,递归与非递归实现;
  13. 反问
  14. c++的内存模型,各个区的作用
  15. c++什么情况下会有野指针问题(说了两种情况)
  16. 还有什么情况下会有野指针问题(我说想不到)
  17. 链表,有一个指针,双指针,在引用的过程中间,有一个指针将他的链给断开,去访问的时候,另一个指针会发生什么(没理解面试官提出问题的题意,没答出来)
  18. 数组的越界呢?
  19. 文件的内存映射了解过吗?相较于普通的io流有什么优势呢?(没有专门背过,寄,后来面试官解答了这个问题)
  20. 一个数组的值先从小到大递增后从大到小递减,找出最大的值。(我没想到最优时间复杂度的解决方法,面试官给了答案)

汽车之家

  1. 看简历上掌握Kotlin,说一说协程
  2. 说一说Java的反射?反射为什么性能差?
  3. 熟悉Android的四大组件,说一说Activity的launchMode中的singleTask和singleTop的区别
  4. provider中getContext()获取到的context是什么context?
  5. 反问
  • 部门业务和技术栈?有一个Unity3D项目,有一个地图SDK项目。技术栈Java和Kotlin都有
  • 您觉得我还有哪方面需要改进的吗?挺好的,回答问题可以更具体地概述有几点,结构化思维去回答问题
  1. 协程是什么?
  2. 知道集合和多线程,那说一说你知道的线程安全的集合
  3. 讲一讲你知道的锁?从不同角度可以分为类锁和对象锁、公平锁和非公平锁、乐观锁和悲观锁,追问自旋锁
  4. 讲一讲LeakCanary的原理(弱引用队列+Activity生命周期),使用LeakCanary检测到了什么内存泄漏?是先知道这里会出现内存泄漏吗?不是,内存泄漏就是通过LC检测出来的,然后再去查找内存泄漏的原因
  5. LeakCanary用到了一个GC机制,GC Root都有哪些?
由于文章篇幅有限,不能将面试过的所有面试题展示出来,但是我已经将求职过程中碰到的面试题整理成PDF文档了,有需要的小伙伴,可以点击下方课程链接详细了解!!!

https://edu.51cto.com/course/32703.html

Android面试被锤记:一面一个不吱声_Android

第一章 Java方面

  • Java基础部分
  • Java集合
  • Java多线程
  • Java虚拟机
  • Android面试被锤记:一面一个不吱声_Android_02

第二章 Android方面

  • Android四大组件相关
  • Android异步任务和消息机制
  • Android UI绘制相关
  • Android性能调优相关
  • Android中的IPC
  • Android系统SDK相关
  • 第三方框架分析
  • 综合技术
  • 数据结构方面
  • 设计模式
  • 计算机网络方面
  • Kotlin方面
  • Android面试被锤记:一面一个不吱声_Java_03

第三章 音视频开发高频面试题

  • 为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?
  • 怎么做到直播秒开优化?
  • 直方图在图像处理里面最重要的作用是什么?
  • 数字图像滤波有哪些方法?
  • 图像可以提取的特征有哪些?
  • 衡量图像重建好坏的标准有哪些?怎样计算?
  • ......
  • Android面试被锤记:一面一个不吱声_Android_04

第四章 Flutter高频面试题

  • Dart部分
  • Flutter部分
  • Android面试被锤记:一面一个不吱声_Java_05

第五章 算法高频面试题

  • 如何高效寻找素数
  • 如何运用二分查找算法
  • 如何高效解决雨水问题
  • 如何去除有序数组的重复元素
  • 如何高效进行模幂运算
  • 如何寻找最长回文子串
  • ....
  • Android面试被锤记:一面一个不吱声_内存泄漏_06

第六章 Andrio Framework方面

  • 系统启动流程面试题解析
  • Binder面试题解析
  • Handler面试题解析
  • AMS面试题解析
  • Android面试被锤记:一面一个不吱声_内存泄漏_07

第七章 企业常见174道面试题

  • SD卡
  • Android的数据存储方式
  • Broadcast Receiver
  • sp频繁操作会有什么后果?sp能存多少数据?
  • dvm与jvm的区别
  • ART
  • Activity的生命周期
  • Application能不能启动Activity
  • ....
  • Android面试被锤记:一面一个不吱声_内存泄漏_08

有需要的小伙伴,可以点击下方课程链接详细了解!!!

https://edu.51cto.com/course/32703.html

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月30日 0

暂无评论

8GQSXwxgX6eP