2024Android春招面试真题详解,安卓开发自学技巧

闭关刷题

以前在网上找技术博客,不成体系的学习效果真的太低了,经常因为信息过多,还有信息不准确而耽误时间,很容易就分心了。

后面除了跟视频学习,就是一直在刷这套1307页Android 面试全套真题解析。

这份资料是真的帮到了很多,内容全面,覆盖率比较高,省去了很多时间和精力。

面试

前面面了贝壳找房和网易,都通过了,虽然最后没有谈好,但是有了一些信心。后面让朋友帮忙内推了腾讯,三面顺利拿下offer,薪资是28K,相比于上一份工作上涨了15K。

这里主要放腾讯面经

一面

0、说说做过的项目(差不多包括了自我介绍)
说一下我表达的重点:我做了AndroidQ的适配;我在项目中使用了新的技术:LiveData、BiometricPrompt;我使用到了设计模式:工厂、简单工厂、单例;我在不断优化我的代码;我关注Google开发者大会

1、问上一份工作
抓着工作中的技术点问了很多,然后后面问题的差不多都是来自这里面。

2、EventBus和回调的对比。有没有其他办法可以解决类之间的耦合性。
说了LivaData,但其实差不多。老老实实说不知道了……
现在想了想,这个题目那份资料里面好像也有提到过,但是……我没记住!!!

3、ListView和RecyclerView的比较,ListView没用了吗?
说了实现效果,代码、缓存方面、ViewHolder的差异,讲了一下RecyclerView在多个Fragment中有相同Item时的优越性。
ListView这个问题问到我时我差点没笑出来……我看了微信团队对于卡包界面是否要更新为RecyclerView的一篇文章,建议背诵全文……

4、Service和AsyncTask对比。
因为AsyncTask由于不使用匿名内部类方式很可能出现内存泄露问题,所以自己不使用,基本都是开线程池。然后面试官问AsyncTask底层,也就说了一下handler+线程池。
现在回想,有这么几个点:生命周期方面;消息传递方面;底层实现方面。

5、线程通信机制。
handler、信号量、互斥量、临界区管理synchronized之类的、共享变量volatile。

6、Android进程通信机制。
AIDL、Binder、共享文件。
前两个没啥说的了,老特长了。
说一下共享文件,这个我本来觉得很low,但是最近研究SharedPreference的时候,发现如果APP签名一样的话,可以使用同一个SharedPreference,所以也就说了共享文件。我不是想表达我用共享文件作为进程通信方式,我只是想说我了解SharedPreference。

7、ArrayList和Vector对比……不会Vector,那么ArrayList和LinkedList对比。
底层,数组,链表。扩容问题,我概括了一下所有的集合类的扩容方式都是装载因子+当前容量+需要扩容容量。
我说线程安全的List有CopyOnWriteArrayList,但是面试官没有往下问。

8、为什么扩容很多情况下都是扩容为两倍?
这个不会,但是说底层代码很多情况下扩容都是移位操作进行的。可能和查询相关?

9、HashMap和HashTable对比,ConcurrentHashMap。
HashTable不是Map,HashTable是Dictionary,而且锁的时候是锁数组,并发的粒度很大。
ConcurrentHashMap用的是分段锁而且有一个:判空+判相等+CAS+synchronized的一个锁的过程,所以很强大。

10、CAS相关。

11、知道优先级反转吗?
不知道……回去研究去……

12、TCP三次握手四次挥手。
主要思路是通过SACK和全双工来整体讲解。

13、代码,如何判断两个链表是否相交 。
我最开始想成了找到第一个相交结点,然后说了思路,面试官说有没有更好的。然后直接判断最后一个结点是否相等。面试官说如果有环呢,那只能用HashSet存一下了。

14、反问。
问了下面试官是什么事业群。
说是PCG平台,感觉自己应该是被PCG捞起来了。
后面就问了一下公司的一些不疼不痒的问题。

总结
整体答得还可以,就是以为是2点面试,结果3点30才面上,可能是我记错时间了。状态没有调整到最好。

二面

0、自我介绍。
1、hashCode和equals方法。
2、HashMap,hash冲突解决,红黑树相关。
3、String、StringBuilder。
面试官问String的加法

String a = "a"+"b"+"c";

StringBuilder sb = new StringBuilder();
a = sb.append("a").append("b").append("c").toString();

这两者效率差别,我说没差别啊,第一种String的加法被编译器优化成第二种,他不信我……不过还好,最后达成共识面试官面试完自己去查。
现在复盘觉得面试官应该想问的是这种情况:

String a ="";
a+="a";
a+="b";
a+="c";

我还是对的。

4、wait、notify。
问是不是只能在有锁的情况下wait和notify。
[图片上传失败…(image-1692c4-1602502611210)]
5、线程间通信方式。
handler那一套。

6、快排原理,最好情况和最坏情况时间复杂度。
最坏情况逆序n**2,顺序情况我的算法还是nlogn,问了优化思路。

7、算法题,
image

用了贪心没ac,面试官提示快排,没想明白……

8、思考题,如果我想将一颗二叉树存入文件,怎么样的格式存储可以使得读取效率最高。
这题是个开放讨论题,和面试官一直在讨论怎么做。

【当时以为自己凉了,没想到顺利收到了三面的通知】

三面

0、自我介绍

1、实习工作深挖

2、RePlugin原理深挖,其他插件化框架对比

3、为什么要选择RePlugin框架

4、你觉得自己对于Android掌握到了什么地步

5、看过什么源码

6、你为什么要看源码

7、你为什么要写博客

8、知道哪些著名开源框架

9、什么是进程,进程调度算法

10、什么是线程

11、你觉得什么是JVM

12、有哪些线程同步算法

13、死锁是什么,举个例子

14、Object有哪些方法

15、Java异常有哪些,Error和Exception区别

16、OSI七层模型,TCP、UDP是哪一层,应用层有哪些协议

17、如果要设计一个大量图片下载的方法,如何确定并发量,有哪些指标。

18、APP间传递消息安全吗?要怎么做才能安全呢?

19、广播怎么分类

20、自定义View重写的关键有哪些,onLayout和onMeasure区别

21、Android有哪些动画,MotionLayout讲一下。MotionLayout使用场景。

22、Activity四种启动模式,SingleTask和SingleTop的使用场景

23、一些Framework层的问题,不太会所以记不得了。
当时收藏一位B站UP主的视频,有需要可以去看一下

24、你为什么想了解Framework层知识。

25、算法题。

26、你对于我们的Offer的态度

27、闲聊

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

学习福利

【Android 详细知识点思维脑图(技能树)】

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。

这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

由于篇幅有限,这里以图片的形式给大家展示一小部分。

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

1713587060935)]

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值