迟来的Android春招面经,望能为准备春招的面试者做参考

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

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

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

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

如果你需要这些资料,可以添加V获取:vip204888 (备注Android)
img

正文

  • 验证过程是防止什么问题?验证过程是怎样的?加载和验证的执行顺序?符号引用的含义?

  • 准备过程的静态成员变量分配空间和设置初始值问题。

  • 解析过程符号引用替代为直接引用细节相关。

  • 初始化过程jvm的显式初始化相关。

  • 类卸载的过程及触发条件。

  • 三种类加载器,如何自定义一个类加载器?

  • 双亲委派机制。

  • JVM内存分配策略,优先放于eden区、动态对象年龄判断、分配担保策略等。

  • JVM垃圾回收策略,怎样判对象、类需要被回收?

  • 四种垃圾回收算法标记-清除、复制、标记-整理、分代收集。

  • JVM中的垃圾回收器,新生代回收器、老年代回收器、stop-the-world概念及解决方法。

  • 四类引用及使用场景?

基本上JVM方面所有的大的概念全部问到,真的需要理解到位。JVM比较熟悉,全程巴拉巴拉不停地说,有惊无险。

集合类

初始引起话题的问题:hashmap了解吗?心中一喜,开启侃侃而谈(胡吹)模式。讲到了以下的一些点:

  • hashmap实现的数据结构,数组、桶等。

  • hashmap的哈希冲突解决方法:拉链法等。拉链法的优缺点。

  • hashmap的参数及影响性能的关键参数:加载因子和初始容量。

  • Resize操作的过程。

  • hashmap容量为2次幂的原因。

讲完一通之后,面试官挺满意,说了解地比较深挺好,抛出了下一个问题hashtable了解吗?又是心中一喜,一通介绍:

  • hashtable线程安全、synchronized加锁。

  • hashtable和hashmap异同。

  • 为什么hashtable被弃用?

果断将话题扯到concurrenthashmap,讲了concurrenthashmap相比于hashtable做的优化、segment的概念、concurrenthashmap高效的原因。中间面试官问的问题:

  • 容器类中fastfail的概念。

  • concurrenthashmap的插入操作是直接操作数组中的链表吗?

  • 集合类相关over,由于都是自己主动在说,把握了主动权,相谈甚欢。

多线程

由于上面提出了concurrenthashmap的概念,顺理成章聊起了多线程。有了上一部分的经验全程我主动讲,面试官针对性问了一些问题,大概内容如下:

  • 为什么要使用多线程?多线程需要注意的问题。上下文开销、死锁等。

  • java内存模型、导致线程不安全的原因。

  • volatile关键字,缓存一致性、指令重排序概念。

  • synchronize关键字,java对象头、Markword概念、synchronize底层monitorenter和moniterexit指令。

  • lock语句和synchronize对比。

  • 原子操作,CAS概念、相关参数。

  • 乐观锁、悲观锁概念及使用场景。

  • 线程池概念、实现原理等。

  • JVM锁的优化,偏向锁、轻量级锁概念及原理。

多线程方面回答得比较好,面试官反馈比较满意。

数据库

数据库方面笔者水平较菜,没有深入了解。面试官问了一个问题,

  • SQL语句中对表或者字段取别名有什么好处?

并不知道怎么回答,面试官也没有再问数据库相关。之后面试官问了解操作系统,回答:没学过。面试官:好的 ,那不问了。心中感动得无法用言语形容。

通信协议

接下来是对通信协议的了解,大概问了下列问题:

  • TCP三次握手、四次挥手。

  • http请求报文结构、响应报文,状态码。

  • http2.0相比于http1.0的新特性,推送、多路复用、消息头压缩等。

通信协议问得不是太深,了解得比较好即可。面试官反馈比较好。最后就是问android了,面试官说感觉你android应该挺厉害的,当时真的是受宠若惊。

android

android是重头戏。由于之前已经了解挺多,android方面基础的没有多问,比较深入。大概有如下问题:

  • handler机制组成,handler机制每一部分的源码包括looper中的loop方法、threadlocal概念、dispatchmessage方法源码,runnable封装message等。

  • listview缓存机制、recycleview缓存机制。

  • bitmap高效加载,三级缓存等。

  • binder机制原理。

  • view的工作原理及measure、layout、draw流程。哪一个流程可以放在子线程中去执行?

  • draw方法中需要注意的问题?

  • view的事件分发机制。

  • android性能优化:布局优化、绘制优化、内存泄露优化、bitmap、内存泄露等。

  • 内存泄露的概念?android中发生的场景?怎么解决?讲了handler、动画等。

面试android方面的时候已经真正地淡定下来了,有条不紊地和面试官说了自己所有的理解。反馈也挺好。

算法

最后是一题在线编程,题目比较常规,是一题最大连续子序列,需要注意全是负数的处理,在此不赘述可自行百度。

写算法的时候发生了一个小插曲,由于面试官直接面的都是以java写的,而笔者比较熟悉C++写算法,面试官也不太熟悉c++编译(g++),面面相觑一会儿才成功编译输出结果。真心非常感谢二面面试官的细致和耐心,最好的一次面试体验。面试官说他的这一面他过了,还会有一到两轮技术面试,礼貌地感谢面试官之后结束了,至此二面结束。二面108min。关闭连接后长呼一口气和女友分享了喜报,经此一役,我知道我的阿里之路已走完半程。

为什么说二面很重要呢?因为二面是所以技术面试中最为细致、考察最为最为深入的一轮面试,后面的面试官会很大程度上参考这一面试的结果,并且据说这一面很影响评级。

三面

二面过后的第二天下午收到三面电话,约了三点的面试,由于之前的面试都是晚上可以在教室完成(在此感谢女友,没有你的陪伴就没有一个好的环境完成面试),三点的时间点是上课时间也基本找不到空教室,所以在教师休息的小房间完成了三面面试。

三面面试官感觉是部门主管级别,上来自我介绍后开始问问题。问了一下简历上在学校做的一个android的项目,说一个难点,讲了推送,巴拉巴拉讲了一通极光推送,感觉面试官不是很感冒,问了极光推送的实现原理,笔者一紧张竟然忘了讲长连接……又问了华为实习的项目,难点,怎么优化……我扯了一通字母树,感觉面试官还是不太感冒。这个时候已经有点慌张,然后……面试官开始问优缺点、之前签的公司、为什么想去杭州、你是怎么看待算法?还问了最优成就感的一件事情,你觉得为什么会获得一等奖?是不是因为对手太弱了(懵了……)?回答完直接问还有什么问题想问他…此时有点崩溃,感觉也答得不太好,问了还有哪些方面需要改善。然后结束了面试……三面29min。

面完三面挺难受的,感觉反馈不是很好,没发挥好。难过了一会儿吃了个饭回图书馆继续看书。

四面

当晚上我还在感怀阿里离我远去的时候,一个杭州的电话来了……和四面面试官约好了时间,做一个技术和综合素质方面的面试。急匆匆和女友去找到了一个空教室,9点电话如约而至。四面面试官感觉斯文儒雅,上来介绍这是一轮交叉面,最后一轮技术面试。照例自我介绍后,问了如下问题:

通信协议

TCP保证可靠传输的实现:停止等待协议、滑动窗口协议、流量控制、拥塞控制等。

项目
  • 说一个你记忆比较深刻的功能:我讲了一个查看当前WiFi网络连接终端信息的功能的实现。

  • 说一下你遇到的问题:讲了一个十几万级别的字符串的匹配通过字母树优化的问题。面试官听了后和我详细分析了一下,得到了一个更好的实现方法……当时一阵汗颜,班门弄斧了。

  • 问了一下项目中使用到的三级缓存策略。

获奖

聊了聊获奖经历,中间是怎么学习的。面试官看了看前面的面试过程,说问了多线程了,那他就不问了……

数据库

数据库方面问了以下的问题:

  • 索引的种类。

  • B树、B+树、红黑树。

  • B+树和B树相比有什么优点,应用场景?

  • 红黑树的一些特点?怎样保持平衡?

问着数据库,问着问着扯到数据结构那边去了……说完之后面试官是感觉你这些都有所准备啊,我说对,毕竟是面阿里,面试官笑了说我本来还准备问你一下八大排序的现在感觉你应该都会,我很自信(jian zha)地说对,我都会。至此,面试官说技术方面他没什么问题想问的了,他这是一轮交叉面,集团内部要求的,他是后台开发方面的,不懂android,问我还有什么想问的。笔者抛出了万金油问题,您觉得我还有哪些方面需要优化的。面试官哈哈一笑,说你们这些学生现在问的都是套路问题,他基本上回答的都是这个问题,然后说了一通感觉深度和广度都有,继续保持就好了。

四面48min。至此,笔者彻底放心。互道周末愉快后结束了面试。和女友分享喜报后,阿里之路的进度条已经走到80%了。至于为什么有交叉面,众说纷纭,不太清楚。

五面(HR)

度过周末后照例去图书馆学习,在周一下午接到hr的电话。周末准备了一些常见的HR面试问题,结果一个都没问到,问到的问题大概如下:

  • 关于之前一次笔试的编程题,为什么没有做出来?后来有思考过吗?

  • 你签约的公司给的薪水是怎么样的?如果阿里给你offer,你是怎么考量这两个offer的?

  • 为什么没有在之前实习的公司留下来?之前公司的主管是怎么评价你的?

  • 你的优缺点?

最后

希望本文对你有所启发,有任何面试上的建议也欢迎留言分享给大家。

好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。

好了~如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。

为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)
img

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

秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)
[外链图片转存中…(img-dt8B0iHw-1713366141249)]

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

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值