参加阿⾥完⾯试后:⼀⾯+⼆⾯+三⾯+HR四⾯,我的复盘经验总结!
阿⾥中间件团队⼀⾯:
第⼀步:先⾃我介绍
⾸先要介绍⾃⼰的项⽬经验和个⼈的擅长点,因为⾯试官主要考察你的表达能⼒和语⾔精简能⼒。
简历的编写其实这⾥可能需要注意⼏点;
1.标题的直接按照姓名-⼏年⼯作经验-应聘岗位格式来填写。例如黄铭——四年⼯作经验——Android开发⾼级⼯程师。因为要知道,HR筛选简历是⾮常快的,你要在第⼀时间就让他看到他想要看的信息。HR⼀开始最关⼼的就是⼯作年限和岗位,你直接在标题栏⽤最⼤的字体写出来会⽐很多⼈介绍了半天项⽬最后写年限要好得多。
2.个⼈信息写最前⾯。个⼈信息栏其实不⽤写很多东西,最主要的就是姓名、联系⽅式、性别、如果学校是名校那么就写上,如果本科学的是计算机专业也可以在这⾥写上,如果都不是就最好放到最后去写,因为最前⾯的东西永远是最先看到的内容,也是你最有竞争⼒和卖弄的资本。
3.有技术博客和github开源项⽬的⼀定写在最前⾯。这是活⽣⽣的例⼦。我在⾯试华为的时候⾯试官就特
意去看了我的csdn上的博客。然后说写的还是不错的,给他留下了⼀个不错的印象,所以这点是绝对的加分项最好就是写在最前⾯。
刷⾯试题这块其实⼀开始我并没有刷特别多,也就是简单的看了下⼀些基础性的知识点。因为我始终觉得看的越多越记不住,⽽且最重要的是你根本不知道⾯试官会怎么问,与其盲⽬的看知识点倒不如先出去⼏家⼩公司⾯试感觉,知道⾯试官会针对哪些地⽅询问,再回来针对性的看。
第⼆步:项⽬中做了什么,难点在哪⾥?
主要是想了解你本⼈参与过技术难度最⼤项⽬的难点,技术难点在什么地⽅,你是如何去解决的,考察项⽬经验(技术难度)。
第三步:开始切⼊技术⾯试正题:
1.Activity的启动模式、standard、singleTop、singleTask、singleInstance的区别。这⾥需要重点注意的是singleTask 启动时候的回调onNewIntent以及不同栈之间的Activity如何跳转。我在⾯试腾讯的时候就被问到过这个问题。
2.Service的启动模式和⽣命周期,会延伸到Binder和IntentService,这⾥最好去看下IntentService的原理和源码。看了源码之后还会延伸到HandThread的问题。推荐我⾃⼰的博客⽂章,Service 、IntentSer
vice
3.Android消息机制Handler。这是常问也是必问的问题,除了要知道内部原理和源码以外还要清楚造成内存泄漏的原因和处理⽅式。从源码的⾓度来谈谈⾯试常客Handler的内部原理
4.事件分发原理。这⾥主要会问事件分发的流程以及进⾏拦截时候onInterceptTouchEvent返回true时剩下的MOVE与UP 如何⾛,onTouch、onTouchEvent、onClick的先后顺序关系。谈⼀谈Android中的事件分发
5.AsyncTask内部实现原理。这个在平安⼈寿以及投哪⼉⽹⼆⾯领导问道过。主要是AsyncTask内部如何实现的,内部处理多任务是串⾏还是并⾏处理,为什么是串⾏处理,如果让其变成并⾏处理等。从源码⾓度谈谈AsyncTask的使⽤及其原理
6.LruCache算法如何实现,内部为什么要⽤LinkHashMap来实现。谈谈LruCache算法的底层实现原理及其内部源码
7.进程之间的通信⽅式,IPC原理。这⾥会延伸到AIDL和Binder。
8.进程之间的优先级。前台进程、可见进程、后台进程、不可见进程与空进程。腾讯⾯的时候还特意问了我进程的保活措施。
9.图⽚的压缩处理。这⾥会问四种图⽚格式的区别(ARGB888、RGB565、RGB444、Alpha_8),以及问给出⼀张以上格
9.图⽚的压缩处理。这⾥会问四种图⽚格式的区别(ARGB888、RGB565、RGB444、Alpha_8),以及问给出⼀张以上格式的图⽚如何计算图⽚所占的内存⼤⼩。
10.Serializable与Parcable的区别。在什么情况下需要⽤到序列化和反序列化,Serializable中为什么要设置UID,设置UID与不设置UID值的区别和影响。
11.动画总结。重点是属性动画内部实现原理,差值器和估值器的使⽤。
12.Android中断点续传的原理、热更新的原理。珍爱⽹⾯试我的时候问了这个,当时没了解过,很遗憾的没回答出来。
13.Android的性能优化。布局优化(include、merge和viewstub标签的使⽤)、绘制优化(不要在onDraw⽅法⾥⾯创建新的对象)、内存泄漏优化,检测内存的⽅式和内存泄露造成的原因等。
14.⽹络请求原理。 http与https的区别、三次握⼿和四次挥⼿,为什么握⼿⼀定要三次?为什么挥⼿⼀定要四次?http的响应码。http1与http2的区别等。
15.开源框架的使⽤和原理。 OkHttp内部实现、glide的内部原理、EventBus源码和RxJava的使⽤过程注意事项等。
我印象中差不多就是问这些东西,其实都是很基础的Android知识,只是问的⽐较深⼊,如果不明⽩内部的实现原理很多问题其实是回答不上来的。所以还是要多看源码才能了解本质问题。
最后问的就是算法.这个算法基本⼤公司都会问。原因很简单,⼀个公司觉得你连算法这么难的都会了,那么其他的知识即便现在不会回去看下学习下很快就能掌握。并且我听闻有这么⼀种传统,在国外类似于Google、Facebook这种公司,⼀般⾯试问的就全是算法,⽽且是很难的算法。只要你算法过关了,那么不管你做没做过Android开发,你都可以去Android部门⼯作。
第四步:你是想做业务还是研究?
主要是想考察你对技术是否有深⼊的研究兴趣,建议回答喜欢研究,毕竟招聘的是技术岗位。
阿⾥⼆⾯:你有什么要问我的吗?
这是我们⼤部分⾯试者都会遇到或者都会被问到的问题。如果你回答 “ 没有 ”,这往往被⼀些⾯试官理解为:你对应聘公司、⼯作岗位没有太⼤的兴趣。可能会让⾯试官产⽣误解,⽽影响⾯试评判。
如果你回答 “ 有 ”,⼀时间⼜容易脑⼦短路,可能会不知道该问以下哪个问题:
问企业发展?怕⾯试官觉得这个⼈好虚,有点不切实际
问薪资待遇、假期福利?⼜怕⾯试官觉得这个⼈没有事业⼼,⼊职了也不会呆太久的,整天就想着休息……
那怎么办?
⾸先,你必须提问
⾯试往往是互相了解过后,⾯试者处于被动状态,这个时候⾯试官将问题抛出,你必须把握住主动权,让⾯试官知道你是认真对待这次⾯试,⽽不是敷衍的流⽔线⾯试。
那么,问什么呢?
不管⾯试官是HR、部门领导,还是⽼板,以下问题都可以帮你轻松度过难关,⽽且你还能从⾯试官的回答中得到很多意外收获:
你在公司的⼀天是如何度过的?
这个简单的问题可以让对⽅滔滔不绝的讲述他⼀天的⼯作,⾯试官会说⼀些⽐较⾃豪和有意义的事情,同时也会有⼀些
这个简单的问题可以让对⽅滔滔不绝的讲述他⼀天的⼯作,⾯试官会说⼀些⽐较⾃豪和有意义的事情,同时也会有⼀些琐碎的事情。在听的过程中,你也能感受到未来⼯作中是否有你的兴趣点,以及最⽆聊的那个部分你是不是可以接受。同时也可以从中推估到你的未来发展,因为升职后也会有⼀天成为他。我去腾讯⾯试的时候就问了这个问题,然后他说了下他⼀天⼲的活,我才知道腾讯的加班是有多严重,我曾跟他说我每周⼀⼆四加班,本以为他会说你加班真多啊,结果没想到他来⼀句说你加班也不多呀,我们很多都是⼗⼆点以后⾛的。我当时就懵逼。这样⽐你直接问他公司加班多吗要好很多。
能否给我简单介绍下贵公司业务与战略的未来发展?
在实际运⽤时,要取决于公司的业务范围。听听⾯试官的计划,这可显出你关注公司整体和未来的发展。同时也可以从他们的谈论中了解到不同公司在同⼀个⾏业的情况,对你准备其他公司的⾯试也会有所帮助。⾯试⼀些⼩公司的时候我就喜欢去问这个问题,通过这个问题我就⼤概能清楚知道这些公司适合不适合我还有就是可以知道⽼板到底是喜欢扯淡还是真正的⼀个实⼲家。
贵公司最让你⾃豪的企业⽂化是什么?
注意!⼀般情况下,这个问题⽐较适合⽤在⾯试⼤公司的职位时,当然现在有不少创业公司也是⾮常看重企业⽂化的。通过这个问题,你可以从⾯试官⼝中了解到公司的⼯作氛围和⼀些⾮硬件的环境情况,同时也可以在⾯试官表达的过程中去留意他的肢体、感情的表达。如果从⾝体语⾔上都表达出认同公司
的⽂化,那说明该公司在企业⽂化建设⽅⾯做得不错。同时你也可以⾃我假设⼀下是否可以融⼊这种氛围。
团队、公司现在⾯临的最⼤挑战是什么?
这个问题⽐较安全,也是⼀个可以引起⾯试官兴趣的话题。⼀来这个问题不会暴露你对公司的不了解,⼆来也能让你对未来⼯作的挑战或困难有⼀个提前的预期。除此之外,这类问题⽤的好,会很容易增加印象分。特别当⾯试官是外国或海归⼈⼠时,⽐较直接⼀点绝对不是坏事⼉!
对于未来加⼊这个团队,你对我的期望是什么?
如果⾯试官将会是你的直属上司,那么这个问题会让你的利益相关者⼀开始就有⼀个感觉,你是⼀个⾮常在乎他或者团队,并且愿意倾听的候选⼈。这样对于快速的培养起⼀段专业的合作关系是很有帮助的,同时也可以更理解他对你的期望值。也可以初步判断出他是⼀个成果导向,还是过程导向的上司;是⼀个由上⾄下思考,还是⼀个下⾄上思考的领导。如果把握准确会更会令⾯试官觉得:你是⼀个会做好准备并且有同理⼼的⼈,这绝对是加分项。
我期望参与团队合作达成共同⽬标,您可以给我举⼀个公司中团队合作的实例吗?
这⼀问题也是要根据你⾯试的企业情况来定夺,如果⾯试的是⼤企业,同时⼜是外企,那么合作对于他
们来说是必须的,因为很多事情你⼀个⼈是不可能完成,所以⾃然会⾮常看重你对合作的态度。通过这个问题,可以让⾯试官知道你有强烈的合作倾向。同时从回答中,你也可以感受到这个公司团队合作的情况如何。
通过刚才的⾯试交流,您觉得我还有那些不⾜?
这⼏乎是我⾯试都会回问的问题。通过这个问题,我就能够知道⾃⼰在他们眼⾥的不⾜之处,回去可以做好的修改。例如,我在⾯珍爱⽹的时候,他们给我的评价是基础还⾏,但是深度不够并且对⾃⼰未来的职业规划不清晰。因为我回答了我想做⼤前端,然后转管理。他们就觉得你⼀下想做技术⼀下⼜想做管理,这⽬标不清晰。所以后来我就直接说⾃⼰想做⼤前端,就没有说再后来转管理的事情了。
阿⾥技术三⾯:
三⾯不是⾯试,⽽是笔试,耗时三个⼩时,考的是Android核⼼的基础。
⼤概说⼀下就是有⼏个考点:
1.Activity的⽣命周期。
2.显式Intent和隐式Intent的区别?
3.Android的系统结构。
4.讲讲Android开发中的性能优化。
5.给了⼀个Logcat打印的错误信息,解释错误是什么原因?
阿⾥HR⾯:
聊⼈⽣谈理想,主要还是考察你对⼯作是否持积极的态度,以及你是否稳定,⾃信发挥就可以了。
⾯试耗时将近30分钟。
java面试题csdn喜欢的话请帮忙转发⼀下能让更多有需要的⼈看到吧,有些技术上的问题⼤家可以多探讨⼀下。
通过不同的⾯试,记录下⾃⼰的⾯试过程从⽽才能更好的提升⾃⼰的。
我基本就是按照⾃⼰的⼏套题⽬来刷的,发现⾯试中的问题在这⾥⾯基本上全部问遍了。祝你也能到⼀个好⼯作。---------------------
作者:Android技术⼲货分享
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论