年后想跳槽?这里有一份Android中高级面试总结

转眼又到年底了,不知道有多少人在心里盘算着拿到年终奖之后就立马提交辞职申请,我相信有这种想法的人应该不在少数。在经历了一年的浴血奋战,受尽了各种委屈和折磨,仍然坚守岗位直到年底的,绝对不是出于对工作的热爱,大多数人都是因为舍不得即将到手的年终奖才选择忍气吞声的。

此文希望能给那些想跳槽的朋友一些参考。

随着工作时间的增加和技术经验的积累。原先的公司不一定能提供给你想要的发展空间与前景。说简单点,家里还有老婆孩子还有老父母,我们需要更高的薪酬。所以跳槽是个不错的选择。

夏末的时候我就有了跳槽的想法。然后就是不断的跑了很多家公司面试。前后花了将近两个月时间。拿到了华为,美团,去哪儿以及一些不太出名的公司的offer。首先是准备简历,然后就是过一下面试题。

简历的编写其实这里可能需要注意几点;

1.标题的直接按照姓名-几年工作经验-应聘岗位格式来填写。例如 黄铭——四年工作经验——Android开发高级工程师。因为要知道,HR筛选简历是非常快的,你要在第一时间就让他看到他想要看的信息。HR一开始最关心的就是工作年限和岗位,你直接在标题栏用最大的字体写出来会比很多人介绍了半天项目最后写年限要好得多。

2.个人信息写最前面。 个人信息栏其实不用写很多东西,最主要的就是姓名、联系方式、性别、如果学校是名校那么就写上,如果本科学的是计算机专业也可以在这里写上,如果都不是就最好放到最后去写,因为最前面的东西永远是最先看到的内容,也是你最有竞争力和卖弄的资本。

3.有技术博客和github开源项目的一定写在最前面。 这是活生生的例子。我在面试华为的时候面试官就特意去看了我的csdn上的博客。然后说写的还是不错的,给他留下了一个不错的印象,所以这点是绝对的加分项最好就是写在最前面。

刷面试题这块其实一开始我并没有刷特别多,也就是简单的看了下一些基础性的知识点。因为我始终觉得看的越多越记不住,而且最重要的是你根本不知道面试官会怎么问,与其盲目的看知识点倒不如先出去找几家小公司面试找找感觉,知道面试官会针对哪些地方询问,再回来针对性的看。

面试阶段

由于我不是裸辞的状态,所以面试对我来说其实不是那么着急和有压力。我之前陆陆续续的面试了差不多两个月左右,面了十来家公司。当然,前面面试的几家公司完全是试试水的状态;每次面试回来我都要做一些笔记让自己知道自己不足。所以这样一来二去后面的状态就越来越好了。针对android这块的面试题目其实主要还是基础性的原理之类的。

Java基础问题

  1. HashMap的内部原理。 主要是内部的hash碰撞、resize()等。还会与HashTable进行对比,说出相同与不同点。作为延伸可能还会问concurrentHashMap的分步锁问题。
  2. java中创建线程的方式有几种。 一般而言很多人会回答两种,Thread与Runnable。我最早面试的时候也是说这两种,然后面试官问还有别的吗?我当时就没答上来,其实还有一种叫Callable的。这里可能还需要理解下Callable与Runnable的区别以及使用时候的注意事项。
  3. 线程阻塞的方式。主要还是考察sleep、wait、yield与join的区别。
  4. 死锁造成的原因、手写死锁。synchronized 关键字
  5. 线程池ThreadPoolExecutor的使用,内部处理任务的过程以及四种线程池的区别。
  6. Java中的四种引用以及使用的场景
  7. java中GC回收算法以及年代区分问题等

java方面的问题印象中差不多就是问上面几个问题,只要了解了这些java这段问题不是很大。

Android的基础问题。

  1. Activity的启动模式、standard、singleTop、singleTask、singleInstance的区别。 这里需要重点注意的是singleTask启动时候的回调onNewIntent以及不同栈之间的Activity如何跳转。我在面试腾讯的时候就被问到过这个问题。
  2. Service的启动模式和生命周期,会延伸到Binder和IntentService,这里最好去看下IntentService的原理和源码。看了源码之后还会延伸到HandThread的问题。
  3. Android消息机制Handler。这是常问也是必问的问题,除了要知道内部原理和源码以外还要清楚造成内存泄漏的原因和处理方式。
  4. 事件分发原理。这里主要会问事件分发的流程以及进行拦截时候onInterceptTouchEvent返回true时剩下的MOVE与UP如何走,onTouch、onTouchEvent、onClick的先后顺序关系。
  5. AsyncTask内部实现原理。 这个在平安人寿以及投哪儿网二面领导问道过。主要是AsyncTask内部如何实现的,内部处理多任务是串行还是并行处理,为什么是串行处理,如果让其变成并行处理等。
  6. LruCache算法如何实现,内部为什么要用LinkHashMap来实现。
  7. 进程之间的通信方式,IPC原理。 这里会延伸到AIDL和Binder。
  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部门工作。这里推荐《剑指offer》这本书或者去领克上刷题。

当面试官问“你有什么要问我的吗”时,应该说什么?

这是我们大部分面试者都会遇到或者都会被问到的问题。如果你回答 “ 没有 ”,这往往被一些面试官理解为:你对应聘公司、工作岗位没有太大的兴趣。可能会让面试官产生误解,而影响面试评判。

如果你回答 “ 有 ”,一时间又容易脑子短路,可能会不知道该问以下哪个问题:

问企业发展?怕面试官觉得这个人好虚,有点不切实际。

问薪资待遇、假期福利?又怕面试官觉得这个人没有事业心,入职了也不会呆太久的,整天就想着休息……
那怎么办?

首先,你必须提问

面试往往是互相了解过后,面试者处于被动状态,这个时候面试官将问题抛出,你必须把握住主动权,让面试官知道你是认真对待这次面试,而不是敷衍的流水线面试。
那么,问什么呢?
不管面试官是HR、部门领导,还是老板,以下问题都可以帮你轻松度过难关,而且你还能从面试官的回答中得到很多意外收获:

你在公司的一天是如何度过的?

这个简单的问题可以让对方滔滔不绝的讲述他一天的工作,面试官会说一些比较自豪和有意义的事情,同时也会有一些琐碎的事情。在听的过程中,你也能感受到未来工作中是否有你的兴趣点,以及最无聊的那个部分你是不是可以接受。同时也可以从中推估到你的未来发展,因为升职后也会有一天成为他。我去腾讯面试的时候就问了这个问题,然后他说了下他一天干的活,我才知道腾讯的加班是有多严重,我曾跟他说我每周一二四加班,本以为他会说你加班真多啊,结果没想到他来一句说你加班也不多呀,我们很多都是十二点以后走的。我当时就懵逼。这样比你直接问他公司加班多吗要好很多。

能否给我简单介绍下贵公司业务与战略的未来发展?

在实际运用时,要取决于公司的业务范围。听听面试官的计划,这可显出你关注公司整体和未来的发展。同时也可以从他们的谈论中了解到不同公司在同一个行业的情况,对你准备其他公司的面试也会有所帮助。面试一些小公司的时候我就喜欢去问这个问题,通过这个问题我就大概能清楚知道这些公司适合不适合我还有就是可以知道老板到底是喜欢扯淡还是真正的一个实干家。

贵公司最让你自豪的企业文化是什么?

注意!一般情况下,这个问题比较适合用在面试大公司的职位时,当然现在有不少创业公司也是非常看重企业文化的。通过这个问题,你可以从面试官口中了解到公司的工作氛围和一些非硬件的环境情况,同时也可以在面试官表达的过程中去留意他的肢体、感情的表达。如果从身体语言上都表达出认同公司的文化,那说明该公司在企业文化建设方面做得不错。同时你也可以自我假设一下是否可以融入这种氛围。

团队、公司现在面临的最大挑战是什么?

这个问题比较安全,也是一个可以引起面试官兴趣的话题。一来这个问题不会暴露你对公司的不了解,二来也能让你对未来工作的挑战或困难有一个提前的预期。除此之外 ,这类问题用的好,会很容易增加印象分。特别当面试官是外国或海归人士时,比较直接一点绝对不是坏事儿!

对于未来加入这个团队,你对我的期望是什么?

如果面试官将会是你的直属上司,那么这个问题会让你的利益相关者一开始就有一个感觉,你是一个非常在乎他或者团队,并且愿意倾听的候选人。这样对于快速的培养起一段专业的合作关系是很有帮助的,同时也可以更理解他对你的期望值。也可以初步判断出他是一个成果导向,还是过程导向的上司;是一个由上至下思考,还是一个下至上思考的领导。如果把握准确会更会令面试官觉得:你是一个会做好准备并且有同理心的人,这绝对是加分项。

我期望参与团队合作达成共同目标,您可以给我举一个公司中团队合作的实例吗?

这一问题也是要根据你面试的企业情况来定夺,如果面试的是大企业,同时又是外企,那么合作对于他们来说是必须的,因为很多事情你一个人是不可能完成,所以自然会非常看重你对合作的态度。通过这个问题,可以让面试官知道你有强烈的合作倾向。同时从回答中,你也可以感受到这个公司团队合作的情况如何。

通过刚才的面试交流,您觉得我还有那些不足?

这几乎是我面试都会回问的问题。通过这个问题,我就能够知道自己在他们眼里的不足之处,回去可以做好的修改。例如,我在面珍爱网的时候,他们给我的评价是基础还行,但是深度不够并且对自己未来的职业规划不清晰。因为我回答了我想做大前端,然后转管理。他们就觉得你一下想做技术一下又想做管理,这目标不清晰。所以后来我就直接说自己想做大前端,就没有说再后来转管理的事情了。

面试题以及答案

通过不同的面试,记录下自己的面试过程从而才能更好的提升自己的。

在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司19年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

还有?高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

【Android开发核心知识点笔记】

【Android思维脑图(技能树)】

【Android核心高级技术PDF文档,BAT大厂面试真题解析】

【Android高级架构视频学习资源】

Android精讲视频领取学习后更加是如虎添翼!进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!

【Android进阶学习视频】、【全套Android面试秘籍】可以加我wx:X1524478394 免费获取!

原文地址:https://blog.51cto.com/14332859/2463870

时间: 2024-10-12 15:37:34

年后想跳槽?这里有一份Android中高级面试总结的相关文章

想跳槽了,却感觉左右为难

一个人在企业服务了十多年,也算是老员工了,可是,现在却面临着两难的境地,是该跳槽了?还是继续留下? 说起这个话题,不得不从原因说起.自从部门更换了一个新领导,部门的格局就变了.从最开始大学毕业,进入企业,说心里话,喜欢编程这个行业,喜欢里面的逻辑,所以,我也就是一个典型的技术男,和所有的技术男一样,专心实现业务流程,实现各种技术,尝试新技术,老领导虽然不是搞技术的,但是特别尊重搞技术的,也特别正直,这里用了正直这个词语,因为感觉自己也是这类人.技术上我们可以讨论的热火朝天.所以大家相处得特别好.

Android开发面试经——4.常见Android进阶笔试题(更新中...)

Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http://blog.csdn.net/finddreams/article/details/44301359 上一篇文章我们已经了解了Android笔试的一些基础题目, [<Android开发面试经——2.常见Android基础笔试题> ] (http://blog.csdn.net/finddreams/a

2019最新Android中级面试题目汇总解答

注:因为实际开发与参考答案会有所不同,再者怕误导大家,所以这些面试题答案还是自己去理解!面试官会针对简历中提到的知识点由浅入深提问,所以不要背答案,多理解. Android进阶延伸点 1.如何进行单元测试,如何保证App稳定 ? 参考回答: 要测试Android应用程序,通常会创建以下类型自动单元测试 本地测试:只在本地机器JVM上运行,以最小化执行时间,这种单元测试不依赖于Android框架,或者即使有依赖,也很方便使用模拟框架来模拟依赖,以达到隔离Android依赖的目的,模拟框架如Goog

Android开发面试经——6.常见面试官提问Android题②(更新中...)

版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http://blog.csdn.net/finddreams/article/details/44560061 1.HttpURLConnection和HttpClient他们各自的优缺点是什么? HttpUrlConnection 在 2.3 以前的版本是有 bug 的,所以之前的版本推荐使用 HttpClient,但是 google 现在

Android开发面试经——3.常见Android进阶笔试题

关注finddreams博客:http://blog.csdn.net/finddreams/article/details/44301359 上一篇文章我们已经了解了Android笔试的一些基础题目,<Android开发面试经--2.常见Android基础笔试题> 但是做为一个有经验的开发者,仅仅知道基础题还是不够的,你的简历上说有两年以上工作经验的话,那面试官肯定会问一些深入性的问题,看你能否回答的出.所以为了找一个更好的工作,我们还需要去了解一下Android进阶的笔试题目: 1.什么是

android一些面试题目

1.ListView怎么提高滑动效率 2.说下你做过项目的包的构架,(联网,解析,activity,database) 重点 3.加载大量图片怎么做(包括小图和查看大图) 怎么减少一次跟服务器的链接数,怎么做缓存, 4.onInterceptTouchEvent(),onTouchEvent()的关系 5.怎么在oncreate中大致计算一个view的高度(调一下view的measure,然后再getHeight就行了) 6.MessageQueue,Looper,handler的关系(重点)

想跳槽?先看什么是好工作

过完年了.非常多人想换工作,那究竟什么是好工作? 每年春节过后,旧的一年真的结束了,年终奖该拿的拿了,升职该升的升了,调薪该调的调了,而没有拿.升.调的,拿了.升了.调了还不惬意的.就開始春心萌动准备跳槽了. 所以这个时候,究竟什么是好工作这个问题就又冒出来了. 究竟什么是好工作?这是个问题,自从我在微信订阅号"程序视界"上開始公布程序猿职业相关的文章后,就一直在和不同的人讨论什么是好工作,什么样的工作更适合自己. 然而这个问题的答案从本质上讲,却能够一言以蔽之: 你喜欢的工作就是好工

你想不想同时使用多个版本的Android studio

2016年3月16号:针对最新的2.1preiew3的信息,请查看 canary release announcement.附加说明,请参考maindeveloper site. (1)Installation 如果你想参与android N预览版的测试,如果你安装了最新的,这个最新版本会替换你的老版本,也许这不是你想要的效果.你想同时使用预览版和正式版:现在是支持的,两个版本的android studio使用了独立的设置和缓存目录. 下载地址: Windows: https://dl.goog

想涨薪?想跳槽?程序员必知互联网薪资数据分析

本人 程序员一枚,没有从生到死稳重型的待在一家公司,也不是三天两头的跳槽乱入阵营,年轻气盛的乱跳槽的事也不爱干,奉劝同行的新入行的菜鸟们,选工作需慎重,跳槽更需慎重,入职也要做个多线程的程序员.知乎上看到一个关于互联网薪资数据分析的报告,拿来分享,大家共睹. 图片资料来源于100offer程序员拍卖网站. 欢迎大家吐槽,想公布自己薪资,想炫富的程序员们可以列队开始了.