//这里是前言,可略过
看标题就知道我最近去面试了,为了让后来人(跟我一样要面试的人).
毕竟马上到毕业季了嘛!
我觉得写下我的面试经历会对后来人有帮助。
其实是为了给自己写攻略,哈哈哈
号召
- 如果你在面试中也遇到过类似的问题,但是你有更好的回答方案,可以在评论中回复,我会带着你的名字加到文章中
- 如果你在面试中遇到过本文中没有的问题,可以在评论中回复,我们一起来写攻略,我会带着你的名字加到文章中
- 如果你是面试官(技术的),如果你想让大家明白你问这些问题的良苦用心,可以在评论中回复,这样我们就没必要在这里猜想你有该问道什么问题了
我遇到的问题
- 介绍一下你做过的项目.(纯属扯淡,简历上说的已经很清楚了,不知道面试时人家会很紧张的吗)
- 在你做过的这个项目中遇到过什么技术难点.(尼玛,难点我都解决了,就不是难点了,关键是一紧张就忘记了。。。)
- 说说你在这个项目中用到了那些知识.(加载数据,绑定视图。。。。敲控件)
- 你最擅长的技术是哪方面,讲讲.(敲代码。。。。。copy)
- 地图,即时通讯,自定义View这些你做过吗.(百度,高德都有api可以直接用,融云,环信都可以直接用的,github上可以找到各种需求的轮子,没必要重复制造)
/*
以下是笔者观点,仅供参考,不是标准答案,
如果你有异议请在评论中回复,如果你是面试官,
觉得这样答不对,请在评论中回复,谢谢
*/
1.介绍一下你做过的项目.
从以下几个方面来回答
- 项目背景介绍,可以简介一点,一句带过(毕竟我们是做技术的)
比如,金融项目(可能会被问到安全问题),打车项目(可能会被问到地图问题),
直播项目(可能会被问到视频流问题)...等等 - 项目模块介绍(你负责的),例如:登录注册模块,账户模块,订单模块等等
- 项目采用什么架构,例如: MVC (Model+View+Controller),
MVP (Model+View+Presenter), MVVM (Model+View+ViewModel)可查看文章结尾的外链解释 - 项目中使用到的第三方库,例如:用Rxjava来做异步操作和流程控制,用retrofit来做网络请求,
用picasso来做图片显示和缓存库,用EventBus来做线程间通信,用DBflow来做数据缓存,等等 - 如果项目中有请求库或者UI库是你自己写的,那你就有的聊了,面试官肯定会问你实现过程的,所以自己做过的东西一定要熟悉
我想通过以上你的 这些介绍,面试官肯定有很多问题要问你了,只要你对自己说出来的东西有一个比较全面的认知,
应该就可以给出满意的回答了,如果当时遇到自己不知道的,可以把面试官往你了解的问题上引导,比如这个项目中我对数据库操作用到的比较少,对图片显示的研究比较多....,
趁现在还有时间,赶紧去了解了解你用过的那些知识吧,让面试官难不到我们,哈哈
2.在你做过的这个项目中遇到过什么技术难点.
//有坑就得填,这个问题就是一个坑,当你说出难点后,
//下一句肯定是你是怎么解决的呢,所以你答完后,记得问问面试官
//您觉得这些问题应该如何解决,有来有往才能增进感情,哈哈
从以下几个方面
- 内存管理上的,例如,OOM等
- 触摸事件冲突的,例如,scrollview嵌套RecyclerView等
- 网络请求上的,例如,文件上传下载
- 进程间通信的,例如,activity和fragment之间的通信
- 打包,分包上的,例如,超过65k方法限制
- 项目管理上的,例如,svn提交,分支,合并,git提交,分支,合并
项目中遇到问题,要记录下来,方便他人,也方便自己,面试的时候拿出来看看就ok了,别人的还得理解,
自己的看看就能记起来了!作者就是因为太懒了,没做记录,都石沉大海了!哭。记得自己不知道的,
一定要回问面试官,这样影响更深刻,哈哈
3.说说你在这个项目中用到了那些知识.
//其实第一个问题已经包含了这个问题的回答
从以下几个方面
- 用到的第三方库包,例如:用Rxjava来做异步操作和流程控制,用retrofit来做网络请求,
用picasso来做图片显示和缓存库,用EventBus来做线程间通信,用DBflow来做数据缓存,等等,这些个库的好处和短处(其实我也不知道,有没有大神来回答下,哈哈) - 如果对android中的设计模式比较了解,也可以说说,例如,工厂模式,单例模式,适配器模式等等,具体可以看文章末尾的链接
- 项目架构,可以说说自己比较熟悉的,比如说说MVP的原理
- 要是那种常驻后台的应用,还可以说说后台保活的方案
- 其实基础一点的可以说说控件的使用,RecyclerView,ScrollView,自定义Dialog,自定义Popwindow,AutoCompleteTextView,等等
- 多线程的使用,数据流的使用
等等。
关键是这个问题,一定要说自己熟悉的,因为面试官最喜欢问,用这个的长处和短处(这个问题真是坑死我了。流汗),
如果不熟悉就趁现在赶紧熟悉熟悉,背都得背下来啊,,
4.你最擅长的技术是哪方面,讲讲.
//我觉得这个问题也是一个坑
- 不能说很擅长,要谦虚点,就是相对于其他方面,我对这个了解的多一点
- 就拿上面那些个知识点其中一点(用的最多,对原理很清楚,可以举一反三的知识点,最好是你面试官不知道的,哈哈)来说说
5.地图,即时通讯,自定义View这些你做过吗.
- 这个问题就要看项目了,最好是带着手机,给面试官看你做的项目
- 即使以往做的项目中没有集成过这些,没有自己写过控件,你也可以说熟悉这方面的api,有自己写过demo,
- 说明你是一个爱学习的好孩子哈,没有写过这方面demo的同学得赶紧熟悉熟悉了,文章末尾有链接可供参考
福利
面试中,作者遇到了一个很憋屈的问题,对于有些控件和库的发音说不出口,特地记录在此,如果有同学跟作者一样那趁现在练习练习,不要在面试的时候出丑,哈哈
英文 翻译 -> 中文发音
Presenter 支持人 ->普热身特
Picasso 毕加索-> 疲擦手
Retrofit 改造->瑞去哦菲特
RecyclerView 回收View->锐赛可乐View
文章涉及到的知识点
android设计模式系列
MVC,MVP,MVVM与架构经验谈
自定义View系列
百度地图android api
高德地图android api
RecyclerView的使用
Okhttp上传下载
Android内存优化之OOM
Activity与Fragment通信
65536方法限制解决