Android 开发面试题集合整理(内含答案)(1),2024Android大厂面试集合

本文详细探讨了ArrayList与LinkedList在Android开发中的性能差异,强调了它们在不同场景下的适用性。此外,文章介绍了Android面试中常见的RecyclerView、MVVM架构和Databinding的使用和原理。还讨论了消息推送的多种方案及其优缺点,并概述了Android数据存储的不同方法,包括SharedPreferences、文件、SQLite、ContentProvider和网络存储。最后,提到了广播注册和内存管理的相关知识,以及如何保存Activity状态和避免内存泄漏。作者分享了丰富的Android面试题及答案,并提供了GitHub资源链接以供进一步学习。
摘要由CSDN通过智能技术生成

对ArrayList和LinkedList而言,在列表末尾增加一个元素所花的开销都是固定的。对ArrayList而言,主要是在内部数组中增加一项,指向所添加的元素,偶尔可能会导致对数组重新进行分配;而对LinkedList而言,这个开销是 统一的,分配一个内部Entry对象。

在ArrayList集合中添加或者删除一个元素时,当前的列表移动元素后面所有的元素都会被移动。而LinkedList集合中添加或者删除一个元素的开销是固定的。

LinkedList集合不支持 高效的随机随机访问(RandomAccess),因为可能产生二次项的行为。

ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间

ArrayList和LinkedList的应用场景如下:

ArrayList使用在查询比较多,但是插入和删除比较少的情况,而LinkedList用在查询比较少而插入删除比较多的情况

3. RecyclerView了解不(一加)


参考答案:阿里3轮面试都问了RecyclerView

4. MVVM架构,Databinding的用法和原理(一加)


参考答案:

DataBinding的使用,请戳这里,本文主要是介绍DataBinding原理

1. DataBinding作用,实现一个MVVM

2. DataBinding使用的主要技术点,Java APT,观察者,注解等

3. DataBinding关键类

ActivityMainBindingImpl 具体实现了绑定

ViewDataBinding 持有activity或者fragment和View的引用,主要作用一次遍历View,实例化所有子View,并存储在数组中,这里解决了findviewbyid性能问题,同时为我们省去了findviewbyid的操作

BR 类似Android R文件

DataBinderMapperImpl 提供了布局文件layoutid到ViewDataBinding类对象的映射,主要用于加载layout返回对应的ViewDataBinding对象

  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值