【Android面经】大厂Android面经分享之阿里巴巴

259 阅读5分钟

前言

金三银四,如已经是四月中旬了,相信有很多朋友已经上岸,拿到满意的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、进程优先级

面试总结

阿里的Android面试涵盖了多个方面的知识和技能。包括Android开发基础、性能优化、设计模式、网络编程、数据结构和算法等。

1、我们需要深入理解Android框架,理解其原理和实现方式。 2、结合自己的实际项目经验来回答问题,提前准备好一些项目案例,突出项目中遇到的问题及解决方法。 3、针对数据算法和设计模式等,多背面试题,加深对知识点的理解和记忆。

写在最后

多家面试总结下来,考察的范围都很广,包括基础知识、项目。

基础知识这块,需要花大量时间准备每一个细节,知其所以然,这样才能面试的时候问起来,都能头头是道。

项目,阿里比较注重项目,所以不仅要熟悉项目做了什么事情,而且要提炼出项目中的闪光点或者说不一样的地方,这些在面试之前都要想清楚。

然后就是要多刷题。面试了这么多公司,除了阿里,其他公司的每一轮都会要求做题,所以在面试之前要对各种常见面试题了解,有时间的话多去刷刷题找感觉。

面试题笔记分享

为了助力朋友们跳槽面试、升职加薪、职业困境,提高自己的技术,本文给大家整了一套涵盖Android所有技术栈的快速学习方法和笔记。目前已经收到了七八个网友的反馈,说是面试问到了很多这里面的知识点。

在这里插入图片描述 每一章节都是站在企业考察思维出发,作为招聘者角度回答。从考察问题延展到考察知识点,再到如何优雅回答一面俱全,可以说是求职面试的必备宝典,每一部分都有上百页内容,接下来具体展示

第一章 算法和数据结构面试题汇总

在这里插入图片描述

第二章 Java核心基础面试题汇总

在这里插入图片描述

第三章 Java深入泛型与注解面试题汇总

在这里插入图片描述

第四章 Java并发编程面试题汇总

在这里插入图片描述

第五章 Java虚拟机原理面试题汇总

在这里插入图片描述

第六章 Java反射类加载与动态代理面试题汇总

在这里插入图片描述

第七章 网络编程面试题汇总

在这里插入图片描述

第九章 高级UI面试题汇总

在这里插入图片描述

第十章 Framework内核解析面试题汇总

在这里插入图片描述

第十一章 Android组件内核面试题汇总

在这里插入图片描述

第十二章 程序性能优化与数据持久化面试题汇总

在这里插入图片描述

第十三章 开源框架面试题汇总

在这里插入图片描述