Skip to content

Latest commit

 

History

History
217 lines (161 loc) · 9.49 KB

Android-Interview.md

File metadata and controls

217 lines (161 loc) · 9.49 KB

Android 面试宝典

目录

面试前的注意事项

面试前的“装备”

  1. 面试前需要准备好手机流量:以便面试过程中进行项目的展示;
  2. 面试前及时查阅行程路线,地图定位一定要准确,以便尽快找到面试地点;
  3. 面试前调整好心态,面试要积极准备知识,但是要注意休息;
  4. 记好公司的联系方式,如果遇到堵车之类的要提前通知公司;
  5. 带好笔、纸、简历、有条件可以带笔记本;
  6. 总结:公交卡、地图、流量、软件、知识、表达

面试前的禁忌

  1. 面试前不要去参加那种“面试时用车接你的”公司,这种十分危险;大家慎重
  2. 如果面试前经过考虑,不想去面试了,那么可以通过电话沟通;
  3. 面试前一定要注意自身的着装,不要过于休闲,也不需要过于拘束;
  4. 着装、发型都会影响面试官的印象;

常见的面试类型

通常面试可以分为多种类型和方式,每一种的特点、准备的方式都不同
  1. 笔试
  • 笔试阶段可能是面试官正在准备, 可以认真答题
  • 笔试阶段尽可能写清晰,不要潦草
  1. 现场面试
  • 最常见的面试方式,准备好知识、注意形象、表达顺畅;
  • 现场面试需要直接对应面试官,注意不要紧张;
  • 准备好自己的项目演示
  1. 机试
  • 机试主要是进行上机,现场进行代码的编写
  • 需要熟练使用 Android Studio 或者 Eclipse
  1. 电话面试
  • 电话面试一定要表达清晰,并且不要思路混乱
  • 注意随时进行资料的查阅
  1. 网络面试
  2. 视频面试

常见的面试流程

面试流程大同小异,有些时间比较长,有些则相对简单
  1. 电话联系-技术面试-人力面试-确认
  2. 电话联系-人力面试-技术面试-确认
  3. 电话联系-笔试-技术面试-人力面试-确认
  4. 电话联系-英语自我介绍-笔试-技术面试-人力面试-确认

常见的面试技巧

面试的过程中有很多面试技巧,需要做好充足的准备,否则将会白白浪费面试

笔试技巧

  1. 笔试阶段需要面试人员准备好知识储备;
  2. 如果明确要求不要在试卷上写答案,那么单独找一张纸作答;
  3. 尽快把会的的题全部做完,之后再去考虑不熟悉的题;
  4. 注意笔试要求的时间;
  5. 笔迹不要潦草,否则面试官也看不懂;
  6. 如果一个题无法完整答出,那么应该写出相应的实现思路或者方案

面试过程中的技巧

面试过程中与面试官的沟通将是影响面试者能否入职的直接因素,需要非常注意

自我介绍

  1. 自我介绍应该简练,但不能太短,例如只介绍自己的姓名是不可以的,2~3分钟最好;
  2. 自我介绍需要在面试之前在脑子里过一下,否则临时抱佛脚是不行的;
  3. 自我介绍的情况应该主要介绍自身基本情况、工作情况、特长以及自己的职业规划;
  4. 禁忌不要上来就介绍自己的学校,以及在学校的情况,公司更关注的是工作情况;
  5. 表单要求顺畅,不要卡顿;

公司介绍

  1. 上家公司的说明,所担任的职位,做的项目以及工作情况;
  2. 上家公司的类型,产品还是外包项目等

项目演示

  1. 项目演示时需要提前在手机中进行安装;
  2. 手机的网络流量必须保证充足,不要想着去面试的时候使用别人的WiFi;
  3. 在面试之前一定要把整个项目摸透,及时有些模块自己没有参与,也应该去了解;
  4. 如果项目在某些情况下崩溃了,需要考虑如何产生的,以及可能的解决方案;

技术面试的方式

技术面试时,需要准备好自己的项目以及技术,以便在技术面试时保证通过
  1. 技术面试需要注意表达,大部分不通过的情况都是因为项目没有说清楚
  2. 技术需要准备充分,项目需要全部了解如何开发、实现;
  3. 面试官可能会在某些问题上刨根问底,这种情况可以进行讨论交流,可以从其他方向进行阐述;

常见的技术面试形式

以下有几种面试的形式,需要各位同学注意
  1. 面试官对照着简历,一个一个的过知识点;应对:简历上的点必须全部掌握;
  2. 面试官不看简历,只是各种技术问题直接问;应对:尽量将这些问题与自己会的进行关联,不会的可以直接明说;
  3. 面试官不问技术,只问项目相关的问题;应对:项目必须全部掌握;
  4. 面试官不问技术,只聊公司自己的产品;应对:从他们公司产品入手进行技术的沟通;
  5. 面试官抓住几个问题,一直问;应对:聊下去;

技术面试常见问题

常见的问题类型

问原理、问底层

  1. 面试官会各种问原理、会问底层
  2. 例如:请描述一下 RxJava 的底层实现原理?
  3. 请说明ListView内部的实现方式?

面试官为什么问?

  1. 面试官可能刚好自己研究过,希望了解面试人员是否也知道;
  2. 面试官可能在网上看过相应的面试题,或者是相应的文章;
  3. 面试官可能是要进行刁难,压工资;
  4. 面试官真的想聊一下原理。

应对之法

  1. 学习的知识都需要了解底层的实现方式,可以在高级阶段开始自己查看,了解实现的原理;
  2. 一部分原理会在课程中讲解,另一部分需要自己去选择方向去了解;
  3. 部分理论是想通的,需要多考虑一下各种知识;
  4. 在面试之前可以去分析一下公司的面试题,这样有备无患;

问优点、问对比

  1. 面试官在有些时候,会问在项目中你们使用了什么?为什么使用,有什么好处?
  2. 例如:请问你们在项目中使用了什么版本管理工具?如果你回答 SVN,那么接着面试官问为什么不用Git?
  3. 这种问题非常刁钻,可能就是影响一个面试人员是否能够入职的关键了。

面试官为什么问?

  1. 面试官对于面试人员项目描述或者技能描述不确认,需要进一步了解;
  2. 面试官希望了解面试人员知识体系中,更多的内容,便于进一步了解;
  3. 如果面试期间回答的有问题,面试官会一直纠结一个问题扩展问下去,这个就危险了;

应对之法

  1. 在项目前期的学习中一定要进行多方面的联系,一个项目用了技术,另一个项目一定要换其他的技术;
  2. 尽可能多接触技术方面,扩展自己的知识体系,对于有些知识还是要系统的了解一下;
  3. 面试时问到的问题确实不会的时候,不要上来就说不会,这样会给面试官觉得有问题;
  4. 对于不会的问题,还是要从其他方面去描述,从名词、特点上说明一下;

面试出现Bug如何处理

  1. 在项目演示的时候,会出现各种情况,例如崩溃,数据无法加载如何处理?
  2. 例如使用3G流量,数据加载的时候出现空白页;
  3. 例如点击某些功能,出现意外终止;
  4. 例如面试官高强度的操作软件时,出现了意外情况的问题;

应对之法

  1. 在项目的实现过程中,需要大家大量的测试,避免出现崩溃的情况;
  2. 在做项目的时候,自己做的部分必须要完全掌握;其他成员做的工作必须要了解;
  3. 在软件测试的时候,需要将所有的功能全部测试一遍;
  4. 如果软件支持缓存功能,那么先应该访问一遍,确保面试时没有网络情况下也能显示;
  5. 如果发现项目的Bug,必须要及时修改;

面试完成后的操作

面试完成之后,比较常见的情况是进行最后的沟通以及离开,常见的场景如下

面试结束之后的问题

  1. 面试官会问:”你还有什么需要了解的?”
  • 这个问题,实际上就是想看一下你最后的想法
  • 可以 “假如我进入到团队,主要的工作是什么?”
  • 可以 “现有的团队技术人员有多少?”
  • 可以 “未来项目/产品的发展方向是什么?”
  • 禁忌 “公司有xxx待遇吗?” 原因:你都不一定能进,考虑这个有用吗!
  • 禁忌 “公司有xxx活动吗?” 原因:拜托,公司又不是健身馆!
  • 禁忌 “公司每年有xxx旅游吗?” 原因:你白白浪费了一个挽回的机会!
  1. 面试官在最后说:“你这边的情况我们都了解了,如果有进展我们 两三天之内和你联系”
  • 这种明确的说:没有太大的希望了,因为如果有进展,当场就告诉你了!
  • 这种情况,不要进行等待,结束面试之后,直接进行下一家面试
  • 如果你通过了,那么代表你的能力,如果没有被录用代表,公司可能找到了更加合适的人选
  1. 面试官最后说:“我们的总监没在,我们在之后会再次根你进行联系,进行复试”
  • 通常总监不在是不可能的,因为面试官可以给总监打电话呀;
  • 这种情况更不用等待,如果有复试更好,面试完成尽快进入到下一个面试中去;

面试之后自己的准备

  1. 在面试一天之后,或者下一个工作日的时候,使用联系方式与面试公司进行联系,确认是否通过或者没有通过;
  2. 如果同时收到几个Offer,那么需要综合自身的情况,进行选择

附录

预祝各位面试成功

常见面试题打包

参见常见面试压缩包