最近准备换工作了,上周面了几家,这里做一下简单的总结。
刚开始面试时,第一感觉是工作确实是比前两年难找了,刚开始投了好多简历,很少有约面试的,后来感觉可能是简历不对,就又花了一周把简历好好改了下,然后又在拉钩和Boss上投了很多,接着果真有好几个面试。所以说准备换工作时,一定要多花点时间把简历写好,简历写好了才会有更多的面试机会。就不细说如何准备简历了,网上有很多这样的文章,这里总结下这几天面试聊的一些问题。
1、MVP(依据登录注册模块讲下什么是MVP,它的优缺点,如何解决它的缺点,和MVC的区别,为什么要用MVP)
2、具体讲讲你写的网络请求框架(我简历上写的是OkHttp3+Retrofit+RxJava封装的网络请求框架),Retrofit是啥,为啥要用,如何工作,RxJava的优缺点等等
3、View的事件传递机制
4、Volley原理分析,当Activity退出时,如何取消请求。
5、Picasso和Glide(UIL、Fresco)区别(优缺点,Glide为什么能跟Activity和Fragment的生命周期绑定起来,如果用的是Application的Context还能和生命周期绑定么,为什么要用人家的框架,框架比自己写的好在哪里,如果要自己写图片加载框架,有什么思路么,什么是LRU,原理是啥)
6、动态加载(好处和原理)和热修复技术(你用的哪一流派的,原理,优缺点)
7、说说你知道的设计模式
8、如何启动线程,线程的管理,多线程
9、谈谈对Android的屏幕适配的理解(UI给的图一般是px,你在项目中如何转化等等之类的问题)
10、断点续传和多线程下载如何实现,详细讲讲
11、讲讲Handler、Looper、MessageQueue关系,看过源码么,讲讲呗,主线程里需要创建Looper么,Looper怎么启动的,启动之后做了什么,当没有消息时会一直循环么等等
12、AsyncTask原理和优缺点,如何解决缺点
13、ListView和RecycleView的优缺点
14、jvm的内存管理机制(栈里面的资源是否共享,String 对象放在那里等等)
15、是否用过EventBus,看过源码么,原理机制,高内聚低耦合是什么鬼
16、画出Activity和MediaPlayer的生命周期
17、讲讲Binder机制吧(巴拉巴拉说了好多,面试官说,看来你网上的文章没少看哈,大笑_)
18、什么是序列化,为什么要序列化,Parcelable和Serializable的区别
19、讲讲Android的动画分类,原理和区别
20、SurfaceView(或TextureView)和View的区别,为什么要用它?
21、什么是进程间通信,为什么要进程间通信,都有哪些方式,AIDL的原理是什么
22、OOM和内存泄漏区别,如何优化?
23、你平常都怎么对Android进行性能优化,都用过哪些性能优化工具?
24、用过SparseArray么,它有什么优点呢,它能完全替代HashMap么,HashMap和SparseArray内部是如何实现呢?
25、Android N 适配的问题
26、广播的启动方式有哪些,区别,为什么静态注册的广播在应用没启动时就能监听系统广播?
27、你项目中遇到的最大难题是什么,如何解决的,大概用了多久解决,有什么收获么(感觉这个问题还挺重要的,好多公司都会问,所以面试之前认真总结下项目中的一些难点,做一些准备,如果回答说没有遇到过什么难题总是不好的吧,O(∩_∩)O哈哈~)
大概就这么多吧,这里我就不写答案了哈,自己去总结一些知识点才会真正去理解,有什么问题了可以私聊。
上周面试感触最大的就是,面试官问的好的问题其实都是我们项目中用到的或者平常遇到的,主要看自己用的时候是否是真的理解,是否去思考和总结。
就先总结这么多吧,最近看到了一句话觉得挺好的,送给正在奋斗中的我们。
技术之路最公平也是最残酷的原因是:没有捷径,需要日积月累的积累,以及对技术持久的热情
最后祝正在找工作的小伙伴们都能够顺利的找到心仪的工作!