你们好,在跟你们讲述本身的面试经历,以及遇到的面试题前,先说说几句题外话。java
接触Android已经3年,在工做中遇到疑难问题老是在网上(csdn大牛博客,stackoverflow等)搜索答案,各位大牛大神老是把本身的经验分享出来,帮助咱们这些须要帮助的人,由此表示衷心感谢!然而如今本身细想了一下,本身也是时候把遇到的问题并把解决方案分享出来,但愿能帮助到有须要的人。面试
随着时间的流逝,不少人说互联网这一块已经愈来愈很差干了,由于烧钱时代已通过去,剩下的都是根基牢固的大公司,独角兽已经不复存在。这就直接致使了互联网岗位的降低,本人亲测,也的确如此。算法
2017.05月,本人离职(此时3年工做经验,深圳就任),开始试水安卓市场,寻求一份合适本身,稳定的中大型公司。投了不少公司,面试机会并非我想象中的那么多,即时面试过程顺利,也没有得到offer(候选人太多太多)。不过借此机会,前先后后我面了10家公司,如今就把我遇到的面试题,而且提供一些面试技巧给各位即将面试的同志们。设计模式
OK,进入主题,请看Android知识图谱。缓存
PS.由于文字限制,想要这26条面试答案或者更多相关资料的,请评论或者私信关注我!安全
面试,无非都是问上面这些问题(挺多的 - -!),聘请中高级的安卓开发会往深的去问,而且会问一延伸二。如下我先提出几点重点,是面试官基本必问的问题,请必定要去了解! 基础知识 – 四大组件(生命周期,使用场景,如何启动) java基础 – 数据结构,线程,mvc框架 通讯 – 网络链接(HttpClient,HttpUrlConnetion),Socket 数据持久化 – SQLite,SharedPreferences,ContentProvider 性能优化 – 布局优化,内存优化,电量优化 安全 – 数据加密,代码混淆,WebView/Js调用,https UI– 动画 其余 – JNI,AIDL,Handler,Intent等 开源框架 – Volley,Gilde,RxJava等(简历上写你会的,用过的) 拓展 – Android6.0/7.0/8.0特性,kotlin语言,I/O大会 急急忙忙投简历,赶面试,还不如沉淀一两天时间,再过一遍以上内容。想稳妥拿到一个offer,最好能理解实现原理,而且知道使用场景了。不要去背!要去理解!面试官听了一天这些内容是很厌倦的,最好能说出一些本身的看法。 面试题(固定答案不解答,本身能够找到)性能优化
顺序是根据记忆排的,没有优先级之分,都是重点。网络
1.Activity的启动过程(不要回答生命周期)数据结构
2.Activity的启动模式以及使用场景mvc
(1)manifest设置,(2)startActivity flag 【此处延伸:栈(First In Last Out)与队列(First In First Out)的区别】
3.Service的两种启动方式
(1)startService(),(2)bindService()
4.Broadcast注册方式与区别
(1)静态注册(minifest),(2)动态注册【此处延伸:什么状况下用动态注册
5.HttpClient与HttpUrlConnection的区别 【此处延伸:Volley里用的哪一种请求方式(2.3前HttpClient,2.3后HttpUrlConnection)
】
6.http与https的区别 【此处延伸:https的实现原理】
7.手写算法(选择冒泡必需要会)
8.进程保活(不死进程)【此处延伸:进程的优先级是什么
】
9.进程间通讯的方式
(1)AIDL,(2)广播,(3)Messenger
10.加载大图
11.三级缓存(各大图片框架均可以扯到这上面来)
(1)内存缓存,(2)本地缓存,(3)网络
12.MVP框架(必问)【此处延伸:项目中使用JNI的地方,如:核心逻辑,密钥,加密逻辑】
13.讲解一下Context
14.JNI 【此处延伸:项目中使用JNI的地方,如:核心逻辑,密钥,加密逻辑】
15.java虚拟机和Dalvik虚拟机的区别
16.线程sleep和wait有什么区别
17.View,ViewGroup事件分发
18.保存Activity状态
onSaveInstanceState()
19.WebView与js交互(调用哪些API)
20.内存泄露检测,内存性能优化 【此处延伸:
(1)内存溢出(OOM)和内存泄露(对象没法被回收)的区别。
(2)引发内存泄露的缘由
21.布局优化
22.自定义view和动画
23.设计模式(单例,工厂,观察者。做用,使用场景)
通常说本身会的就ok,不要只记得名字就一轮嘴说出来,否则有你好受【此处延伸:Double Check的写法被要求写出来。】
24.String,Stringbuffer,Stringbuilder 区别
25.开源框架,为何使用,与别的有什么区别
这个问题基本必问。在本身简历上写什么框架,他就会问什么。
如:Volley,面试官会问我Volley的实现原理,与okhttp和retrofit的区别。
开源框架不少,我就选几个多数公司都会用的出来(框架都是针对业务和性能,因此不必定出名的框架就有人用)
网络请求:Volley,okhttp,retrofit
异步:RxJava,AsyncTask
图片处理:Picasso,Glide
消息传递:EventBus
以上框架请自行查找,太多了就不贴出来了。
26.RecyclerView
结语
面试官面什么,彻底是看他们我的的(性格,心情,天气,你的面相)。以上只是一些我以为重要的点,固然还有不少深层的东西不是一时半日能够补上来的,仍是要看本身平时的经验积累。面试不仅仅是技术面,还有高层面,人事面,这些都要看我的发挥了。
PS:若是面试官说,还有什么想问的,千万不要给本身挖坑,说今天本身表现怎样,能不能被录取。要往公司的团队,氛围去问,尽可能表现的对公司有兴趣。
如:我想知道公司是否认期有开技术会议,老员工是否会分享本身的一些经验等这些问题。
生活不易,若是有面试官(你未来有一天也会面试别人)看到这篇文章,请放下架子或者偏见,尊重每一位面试者。
最后,我列出如下面试须要注意的几个点。
面带微笑,有礼貌,谦逊
穿的体面一点,穿拖鞋的gg了8成
必定要带简历和笔
来了说谢谢,面完说谢谢
要学会看面试官的表情,若是答的很差不要继续往下说
不要吹的本身之前作过的项目有多牛b,也不要自吹
答题要冷静,不要一轮嘴说一堆,面试官很烦的
接下来会写几篇针对BAT等大厂的面试题锦集,很快就出炉拉,已经在整理。喜欢的同窗请点个赞哈!
最后祝你们面试顺利,早日找到本身心仪的公司。
PS.由于文字限制,想要这26条面试答案或者更多相关资料的,请评论或者私信关注我!