好了,废话不多说了。下面是亲身经历的一次面试,这里写出来给大家分享一波,更多的是总结面试中遇到的问题以及以后学习过程中的方向。
面试的公司是美团,美团的同学都非常nice,手动点赞!
技术一共是三面。下面是具体面试的点
==============================================================
- 手写算法题。一共有几个,面试官会随机抽一个作为题目。
给出一个序列包含n个正整数的序列A,然后给出一个正整数x,你可以对序列进行任意次操作的,每次操作你可以选择序列中的一个数字,让其与x做按位或运算。你的目的是让这个序列中的众数出现的次数最多。
请问众数最多出现多少次?
- Activity的生命周期、加载模式。
- 什么时候会用到singleTask?
- Handler机制 子线程可以创建handler吗
-
一个线程是否只有一个Looper?
-
如何保证一个线程只有一个Looper?
-
多线程的方式有哪些?
-
生产者消费者模式
-
wait 和 sleep的区别
-
String、StringBuffer 、StringBuilder的区别
-
ANR异常发生条件
- 如何分析ANR
-
自定义View和ViewGroup
-
事件处理 分发,拦截,处理。
-
GC算法
-
四大引用 强,软,弱,虚,并说明下合适GC
-
动画 View动画,属性动画,帧动画。再说下View和属性动画区别。
-
JVM 原理
-
屏幕适配相关问题
差不多就问了这几个问题,其他的忘记了,其中美团的手写算法在业界算是比较出名,很多小伙伴可能卡在手写算法上。然后就是一些Android和Java的细节性东西,这些基础内容只要有一点工作经验的都基本能说得上来。
==============================================================
-
Http和Https的区别?
-
看过哪些源码?Glide原理?
-
OkHttp原理?
-
Retrofit原理?为何用代理?代理的作用是什么?
-
ButterKnife原理?用到反射吗?为什么?
-
eventbus的原理。
-
Handler原理
-
Binder原理
-
ANR异常如何查找并分析?
-
JVM内存模型?性能调优?
-
垃圾收集算法有哪些?G1算法?
-
加密算法有哪些?对称加密和非对称加密的区别?
-
TCP的三次握手?两次行不行?为什么?TCP攻击知道吗?如何进行攻击?
-
性能优化方面
-
会对代码进行review吗?何时review?怎么review?
-
项目中遇到的让你棘手的问题?多久解决,怎么解决?
-
平常如何学习?何时学习?怎么学习?学习渠道?
二面跟比一面比起来,会更加深入,偏向原理性质。
所以大家平时的编码过程中,要多思考,多看源码,要理解实现方式,而不要一味的去写代码完成需求,长此以往的话未来很容易被后浪淘汰的。
这一节讲的我喉咙都快起火了~
这里必须得感谢一下我毕业后的第一个领导张哥,多亏张哥那会就传授给我正确的学习方式,还一再强调一定要多看源码,不然这里已经凉凉了…
(当然,也与我的天才脱不了干系 2333)
==============================================================
-
前两轮面试感觉如何?
-
热修复
-
插件化组件化
-
动态化
-
Kotlin
-
Flutter
-
聊了一下之前的公司和项目
-
你觉得小团队好还是大团队好?
-
说说自己的优缺点
-
发展方向 职业生涯规划 是先讲究宽度还是讲究深度,为什么?
-
为什么离职?
-
其他小问题:哪里人啊?现在工资怎样?要求如何,何时到岗?有什么问题要问我的吗?
三面面试官可能考虑到之前两轮的原因没有问太多技术问题…
然而我确实已经是强弩之末了,在我感觉中,他竟然上来就是一套连环拳?
- 你觉得小团队好还是大团队好?
- 说说自己的优缺点??
- 职业生涯规划???
行了行了,我不装了,坦白了,我就承认我不行好了吧?
==============================================================
这次面试感觉还不错,美团的同学待人方面很随和。很喜欢这种氛围。
最后的定级就不说了,我始终认为:结果不重要,重要的是过程。只要你有实力,就不用担心,Offer向来都不会亏待那些努力的人!
如果不好好学习,就算背了面试题,又能如何?一样会在面试中PASS。
所以说,平时写代码的时候需要多多思考,不一定用到才去Google,对于一些新的技术,要不断追求同时别忘记了理解原理很重要!基础也很重要!
====================================================================
- 多总结、多输出
多写文章,输出优质内容
而除了人人皆知的写博客,还可以通过画图的方式将知识串起来
包括流程图、思维导图,先把自己记得的部分在图上画出来(这里推荐Xmind)
比如思维导图我是这么做的:
Android开发知识体系→Java基础知识、Android基础知识、性能优化、NDK……
然后性能优化又细分为启动优化、UI渲染优化、内存优化、APK优化……
长此以往的这样一步一步深入构建,你对于自身的知识掌控度会有质的飞跃!
随便找个培训机构的知识体系图的话,也可以起到自己查漏补缺的作用:
在自己绘制导图的过程中,如果遇到写不上的地方,我想你也知道你要提升哪一块了吧?
这样做还有一个好处:体系化学习
平常大家学(jie)习(jue)知(BUG)识的时候都是碎片化的知识,过后非常容易忘,而如果你用思维导图的形式将这些碎片化的知识整合到一起,甚至是工作中也经常使用,效果就会非常好。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)
最后
总之啊,家里没矿的同学们,如果你们想以后的日子过得好一些,多想想你们的业余时间怎么安排吧;
技术方面的提升肯定是重中之重,但是技术外的一些“软实力”也不能完全忽视,很多时候升职确实是因为你的技术足够强,但也与你的“软实力”密切相关
在这我也分享一份大佬自己收录整理的 Android学习PDF+架构视频+面试文档+源码笔记 ,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这些都是我闲暇还会反复翻阅并给下属员工学习的精品资料。在脑图中,每个知识点专题都配有相对应的实战项目,可以有效的帮助大家掌握知识点。
总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习
相信自己,没有做不到的,只有想不到的
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
试文档+源码笔记** ,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这些都是我闲暇还会反复翻阅并给下属员工学习的精品资料。在脑图中,每个知识点专题都配有相对应的实战项目,可以有效的帮助大家掌握知识点。
总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习
[外链图片转存中…(img-wwk1jDxh-1711609436843)]
[外链图片转存中…(img-ZAxcJkUz-1711609436843)]
相信自己,没有做不到的,只有想不到的