我跳槽了!2024年Android找工作面试,你必须提前知道的一些事

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

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

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

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

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

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

正文

送简历这一步,有可能是你直接在招聘网站/APP上搜索职位后主动投递,也有可能是相应公司的HR主动找到你来跟你要简历,也有可能是相应公司的开发人员直接跟你要简历——因为很多大厂对于成功的内推是会有奖励的,还有可能是你通过你认识的老同事/同学/朋友/老乡等直接内推简历,当然也可能是猎头帮你推的。总之,多个朋友就多个渠道,不会吃亏的。

之后的简历筛选就是人家公司内部的事情了,这里可能会通过HR、相应部门的开发、相应的Leader这么几个步骤,是否能通过筛选,就看你简历写得怎么样了,这个话题也不是三言两语就能说清楚的,以后咱们再说。

当你的简历通过了筛选,HR就会联系你,跟你约面试了。对于一个还在工作、没有离职的人来说,往往白天面试是不太方便的(被现任领导发现不就死定了),所以你可以考虑约在晚上,或者干脆自己休半天假来面试。

说到面试形式,以前的时候大部分公司会把候选人直接约到公司,当面进行面试。而现在技术发展了,工具进步了,再加上今年新冠的影响,在线面试就变得十分流行了。电话面试、微信视频面试、腾讯会议面试、阿里钉钉面试等,都已经是当下非常普及的面试方式了,而如果需要在面试中敲代码,那么牛客网可能是目前最主要的途径了。这些工具给面试双方都带来了很大的便利,反正现在技术面还需要现场面试的,我个人是不太喜欢的。

对于一些小厂来说,可能一轮面试就基本上尘埃落定,通过后就可以跟HR谈笑风生了。而对于大厂和一些在技术上还算讲究的中小厂来说,一般会有3轮左右的技术面,通常是一轮技术骨干面,二轮技术Leader面,三轮大Leader面(总监或者VP),全部通过后才是HR面。如果你的级别很高,或者面的公司/事业部要求很高,那么面试的轮数还会多,江湖传言腾讯的wxg有可能达到9-10轮面试。

面试要准备多久

这是一个没有什么标准答案的问题,取决于个人:如果你平时是一个注重总结、经常观看各种技术文章的人,那么所需要的准备时间就会短一些;如果你平时一心放在工作上,不太总结,那么可能就需要更长的准备时间了。我们必须得承认,面试跟平时的工作就是不一样,所谓“面试造火箭,入职拧螺丝”并不仅仅是一句玩笑,而是有相当可信度的。比如,同样一个开源库,对于绝大多数开发者来说,在工作中知道它该怎么用就足够了,但是你在面试中如果面试官问你这个库,那往往你需要比较深入的了解这个库的实现原理,这就需要你去阅读代码了。如果此时你还是憨憨的告诉面试官,我只知道这个库该怎么初始化,不了解其实现原理,那这次面试大概率已经凉了……

一般来说,至少要准备一个月的时间吧,对于一个Android开发人员来说,总得需要这么一个月的时间去熟悉那些你日常工作中用不上、但是面试中却有极大概率被问到的点。而且大部分人都是在职状态找工作,所谓一个月的准备时间,大部分还是在做平常的工作,真正能让你用来做面试准备的时间怕是不会太多。

强烈建议大家在日常的工作生活中养成好的习惯,把最常用的一些库(三方开源库和官方库)尽量从源码层面多了解一下,能自己从中总结其实现思路就更好了。同时一些重要的基础要经常温故知新,这样在跳槽的时候就能节省很多时间了。

是否需要刷算法题

哎,这又是一个大家很关心的问题吧,答案也会让大部分人失望吧——是的,有必要刷题!

当然这里面还是有一点点区分的:如果你的目标是找到一份还可以的工作,并没有一定要去大厂的执念,那么小厂在算法这方面要求并不高,不刷题也行;但如果你就是想去大厂,那么刷题还是很有必要的。

现在的大厂(百度、阿里、腾讯、头条、快手等等)一般至少有3轮技术面试,基本上前2轮都会出个题让你在线写代码。注意啦,这道算法题不一定很难,但很关键,因为绝大多数公司的面试,算法题都放在这一次面试的最后时间,所以它的权重会比较高。如果你之前的问题回答的都不错,但是这最后的算法题没做出来,那大概率就凉凉了;如果你之前的问题回答的很一般(当然不能是特别差),但是这最后的题做的还不错,那么通过此轮面试的概率还是比较高的。所以,你说是否要刷题呢。

Android面试要准备哪些知识点

相信这是大家最关注的问题了,答案内容也是会比较丰富。毕竟Android到今天已经有超过10年的历史了,在App开发方面也十分成熟了,面试官能从很多角度来提出问题,下面我把我这次面试中遇到的一些高频率的知识点说一下吧,因为这篇文章是概述性质的,所以不会详细的说,只说到知识点为止。

Java方面

即使现在Kotlin势头很猛,你也必须有相当的Java基础才行,这里所谓的基础,既包括语言特性,也包括一些数据结构,还有一些JVM层级的东西。

重要的数据结构:ArrayList、LinkedList、HashMap、ConcurrentHashMap,以及Android所独有的SparseArray、ArrayMap等,要做到源码级的理解,这里HashMap是最重要的(还要注意老版本和1.8之后的区别)。

内存方面:内存数据分区(就是程序计数器、堆、本地方法栈、Java栈、方法区)、内存模型。

GC:垃圾对象的判断、GC算法与策略,需要理解各种GC算法的区别。

多线程:Thread、Runnable、线程池、ThreadLocal,以及Android的AsyncTask(按理说现在狠少有人用了,但不知道为什么还是有人喜欢问)。

锁:volatile(姑且把它放在锁这个分类里吧)、synchronized、Lock、CAS、CountDownLatch等,知道每种锁的特性和使用场景,尤其是synchronized关键字锁与Lock锁的对比。

类加载:ClassLoader、双亲委托机制、父类子类各种代码的加载顺序等,还可能引申出热修复、插件化的一些技术。

内部类:普通内部类、静态内部类、匿名内部类,也会涉及到内存泄漏的问题。

设计模式:我面了这么多,还真没遇到几个考设计模式的,偶尔会让你写个单例模式,其他设计模式会穿插在实际的系统设计或者开源库原理分析里。

反射:好像没有被直接问到,但是实际上很多地方都涉及到了反射,如布局加载过程和一些开源库的实现。

Android方面

作为一个Android开发,本职的知识点那肯定是必须要掌握的,作为高级开发,需要理解的地方还是挺多的。

四大组件:四大组件现在被问到的机会很小了(很小的公司或者中低级岗位我不了解),不过偶尔会被问到启动Activity的流程,另外还有Activity的启动模式。Service被问到的很少,BroadcastReceiver和ContentProvider基本上不会被问到。

性能优化:包括启动优化(主要是冷启动)、内存优化、绘制优化、稳定性优化、安装包体积优化等,优化是面试的重中之重。

适配:主要是Android系统不同版本的适配(如6.0开始的动态权限、8.0的前台服务等),还有屏幕适配。

架构:MVC、MVP、MVVM,本来以为这是老生常谈,结果出乎意料,特别多的面试官喜欢问这一块,尤其是官方Jetpack里的ViewModel和LiveData,尽量做到源码级理解。

事件分发:说白了就是事件的分发、拦截、消费机制,这块说简单也简单,往细了说又挺麻烦,一般会给你个具体场景来进行分析。

消息机制:Handler、MessageQueue、Looper,也需要你去读一下相应的源码,尤其是Looper的loop方法,还可能问你loop里的死循环为啥不会导致ANR之类的问题。

布局:常用几种布居肯定都得了解,即LinearLayout、FrameLayout、RelativeLayout以及约束布局ConstraintLayout,要了解每种布居的特点和适用场景。

控件:常用的TextView、ImageView得非常熟悉,其他的也要熟悉。RecyclerView最好要做到源码级理解,尤其是缓存方面。

自定义控件:View(包括ViewGroup)的一些特性得了解,对于自定义控件有帮助。要熟悉View的测量、布局、绘制这3个关键步骤,如有可能,尽量了解从ViewRootImpl开始的绘制流程。

图片:主要是Bitmap的操作,如压缩、裁剪、缓存、回收与重用、超大图的处理等,一方面参考官方或者其他人写的指南,另一方面可以参考一些开源库(如Glide)里是如何处理Bitmap的。

跨进程:你得知道Linux系统里的几种进程间通信方式(共享内存、Socket、信号量、管道等),当然Android的Binder是最重要的,还要明白为什么Android没有使用Linux已有的跨进程方式,而是选择了Binder。

文末

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

这里放上一部分我工作以来以及参与过的大大小小的面试收集总结出来的一套进阶学习的视频及面试专题资料包,主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家

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

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

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

13335159417)]

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值