前言
金三银四,如已经是五月中旬了,相信有很多朋友已经上岸,拿到满意的offer开始入职新公司了。但是也有一部分朋友还在泡池子,在不停面试中。而我,也就是泡池子的那一个,投了上百份简历,只拿到了几个面试的邀约,在这里分享一下我在阿里巴巴的安卓面经,有需要的朋友可以自行参考。
阿里Android面试题
首先是自我介绍相关项目问题
介绍自己的项目经验和个人的擅长点,面试官主要考察你的表达能力和语言精简能力。
1、HashMap 1.7,1.8的差异,1.8中什么情况下转换为红黑树,构造函数中参数代表的意思
2、用什么Map可以保证线程安全,为什么?ConcurrentHashMap为什么能保证线程安全?1.7和1.8原理有什么差异。
3、有多少种单例模式,枚举算不算单例,单例模式中不用volatile会导致什么问题?volatile特性是什么?为什么android中不推荐使用枚举。
4、Glide中怎么实现图片的加载进度条,Glide的缓存是怎么设计的?为什么要用弱引用。
5、implementation 和 api的区别是什么?
6、事件分发的流程,以及怎么解决滑动冲突?
7、事件是怎么产生的?mFirstTarget 为什么是一个链表
8、自定义View需要经历哪几个过程?
9、A 跳转到 B页面,两个页面的生命周期怎么走?什么情况下A的stop()不会执行。
10、Activity 的4中启动模式分别是什么,有什么不同。
11、okhttp中有几个队列?分别干什么用的?怎么取消一个请求?
12、Rxjava中map和flatMap有什么区别,都用过什么操作符。
13、如果Rxjava组合发送任务,中间任务出现异常,其他任务该怎么处理。
14、哪个场景会发生内存泄露,内存泄露怎么检测,怎么解决。以及leak cannery内部原理是什么?为什么新版本的不需要在Application中注册了。
15、手机适配问题怎么处理,都有什么方案。
16、Android9 10 11 都更新了什么新特性,新版本中无法获取IMEI怎么处理。
17、数据序列话有那俩种方式,Serialization和Parcelable区别,如果持久化需要用哪一个
18、组件化怎么分层,各个组件之间怎么通信。
19、怎防止程序崩溃,如果已经到了Thread.UncaughtExceptionHandler是否可以让程序继续运行。
20、Handler Looper mesaageQueue message 之间的关系。
21、子线程一定不能更新ui么?什么时候可以?什么时候不可以。检测逻辑是在什么阶段初始化的。
22、ANR发生的原理是什么, 怎么排查。
23、程序怎么保活。
24、说下路由ARoute的实现原理,怎么处理页面过多内存占用过大问题。
25、线程池都什么时候用,怎么创建,构造函数中的参数分别代表什么意思?
26、进程优先级
27、反向输出字符串
28、两个有序链表合并
29、字符串移除多余空格,且技术单词首字符大写。
30、二叉树中和为某一值的路径
31、本地广播和正常广播的区别
32、二进制低位转高位
33、字符串数组判重
34、二叉树 判断是否为搜索二叉树
35、Activity启动流程,Launcher启动流程
面试总结
阿里的Android面试涵盖了多个方面的知识和技能。包括Android开发基础、性能优化、设计模式、网络编程、数据结构和算法等。
1、我们需要深入理解Android框架,理解其原理和实现方式。
2、结合自己的实际项目经验来回答问题,提前准备好一些项目案例,突出项目中遇到的问题及解决方法。
3、针对数据算法和设计模式等,多背面试题,加深对知识点的理解和记忆。
写在最后
多家面试总结下来,考察的范围都很广,包括基础知识、项目。
基础知识这块,需要花大量时间准备每一个细节,知其所以然,这样才能面试的时候问起来,都能头头是道。
项目,阿里比较注重项目,所以不仅要熟悉项目做了什么事情,而且要提炼出项目中的闪光点或者说不一样的地方,这些在面试之前都要想清楚。
然后就是要多刷题。面试了这么多公司,除了阿里,其他公司的每一轮都会要求做题,所以在面试之前要对各种常见面试题了解,有时间的话多去刷刷题找感觉。
面试题笔记分享
为了助力朋友们跳槽面试、升职加薪、职业困境,提高自己的技术,本文给大家整了一套涵盖Android所有技术栈的快速学习方法和笔记。目前已经收到了七八个网友的反馈,说是面试问到了很多这里面的知识点。
每一章节都是站在企业考察思维出发,作为招聘者角度回答。从考察问题延展到考察知识点,再到如何优雅回答一面俱全,可以说是求职面试的必备宝典,每一部分都有上百页内容,接下来具体展示
网友评论