起由
搞了7年多Android了,前阵子面试了一家不大不小的公司。公司不大,面试官架子还不小,一副目中无人高高在上的样子,搞得好像我一万个想进他们公司、我进不了他们公司我全家都得喝西北风一样。搞得我是真的郁闷:现在搞Android的找工作这么卑微???
给大家分享一下我的面试经历
阿里
- 进程间通信方式?Binder的构成有几部分?
- HttpClient和HttpConnection的区别
- View的事件传递机制
- MVC,MVP,MVVM分别是什么?
- Android中常用的设计模式,说三个比较高级的?
- 内存优化,OOM的原因和排查方法
- 想改变listview的高度,怎么做
- Https是怎么回事?
- 除了日常开发,其他有做过什么工作?比如持续化集成,自动化测试等等
滴滴
- ActivityA跳转ActivityB然后B按back返回A,各自的生命周期顺序,A与B均不透明。
- Synchronize关键字后面跟类或者对象有什么不同。
- 单例的DCL方式下,那个单例的私有变量要不要加volatile关键字,这个关键字有什么用
- JVM的引用树,什么变量能作为GCRoot?GC垃圾回收的几种方法
- ThreadLoca
**资料开源 【VX:vip204888】**l是什么?Looper中的消息死循环为什么没有ANR?
- Android中main方法入口在哪里
- jdk1.5?SparseArray和ArrayMap各自的数据结构,前者的查找是怎么实现的,与HashMap的区别
- Runnable与Callable、Future、FutureTask的区别,AsyncTask用到哪个?- AsyncTask是顺序执行么,for循环中执行200次new AsyncTask并execute,会有异常吗
- IntentService生命周期是怎样的,使用场合等
- RecyclerView和ListView有什么区别?局部刷新?前者使用时多重type场景下怎么避免滑动卡顿。懒加载怎么实现,怎么优化滑动体验。
- SQLite的数据库升级用过么
- 开放问题:如果提高启动速度,设计一个延迟加载框架或者sdk的方法和注意的问题。
- Scroller有什么方法,怎么使用的。
- 分享下项目中遇到的问题
- webwiew了解?怎么实现和javascript的通信?相互双方的通信。@JavascriptInterface在?版本有bug,除了这个还有其他调用android方法的方案吗?
- ReactiveNative了解多少
- JNI和NDK熟悉么?Java和C方法之前的相互调用怎么做?
几点建议
1、简历要如实写,相关的知识点一定要烂熟于心。
2、基础扎实,android和java相关的知识树网上有很多资料,看过但让你讲出来未必能说的好。
3、提前总结,你还擅长什么其他技术?这种开放问题要看知识面了。
4、学会提问,你有什么问题要问我吗?这种礼貌性问题也是一个了解对方的好机会。
5、良好的心里素质,无论遇到什么情况,面试官迟到、面试官态度冰冷说话不客气、质疑你的回答等等各种问题都不要慌也不要排斥,一定要沉住气,耐心积极的思考并回答对方的提问。
6、推荐几本书,也是好几次面试后发现里面涵盖了大部分答案。《Android开发艺术探索》《Android源码设计模式-解析与实战》《Android进阶之光》《深入理解Java虚拟机》《Android音视频开发》《Android进阶解密》多看几遍。
以上面试中问到的题目基本上都可以在其中找到答案,所以做准备是很重要的,但技术是一点点积累的,就算你全会背了,面试过了,真正等到工作的时候还是会捉襟见肘的,所以踏实点吧骚年。
而且大厂的面试流程比较长,面试是一场全面大考验,如果想换个工作,最好提前充分准备。
最后
我这里整理了一份完整的学习思维以及Android开发知识大全PDF。
当然实践出真知,即使有了学习线路也要注重实践,学习过的内容只有结合实操才算是真正的掌握。
mTST-1648874476588)]
当然实践出真知,即使有了学习线路也要注重实践,学习过的内容只有结合实操才算是真正的掌握。