4年Android开发13K,刷完这份1307页Android-面试全套真题解析,跳槽涨薪15K

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

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的一个锁的过程,所以很强大。
如果愿意可以看一下我的博客: https://blog.csdn.net/m0_46962786

10、CAS相关。

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

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

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

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

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

整理了这几年学习的所有的移动高级工程师进阶技术,希望可以给跟我一样想进阶但是没有方向的朋友提供一个参考↓↓↓
https://github.com/xieyuliang/Note-Android

二面

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的使用场景

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

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

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

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

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

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

总结

作为一名从事Android的开发者,很多人最近都在和我吐槽Android是不是快要凉了?而在我看来这正是市场成熟的表现,所有的市场都是温水煮青蛙,永远会淘汰掉不愿意学习改变,安于现状的那批人,希望所有的人能在大浪淘沙中留下来,因为对于市场的逐渐成熟,平凡并不是我们唯一的答案!

资料.png
资料图.jpg

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img
C5VH2rM1-1712764132905)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-hcDQX8BR-1712764132906)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值