随着互联网的发展,大众对程序员这个职业有了更多的了解,除了高薪工资之外,压力太大,黑白颠倒,作息不规律等等,也是身为一个程序员必须经历的事情。
大部分程序员都是安静的、稳重的,有什么问题发给他们修改,收到的都是简洁明了的“OK”。
但是,很多时候,只要一句话,就能让这些可爱的程序猿瞬间被激怒
阿里
- 进程间通信方式?Binder的构成有几部分?
- HttpClient和HttpConnection的区别
- View的事件传递机制
- MVC,MVP,MVVM分别是什么?
- Android中常用的设计模式,说三个比较高级的?
- 内存优化,OOM的原因和排查方法
- 想改变listview的高度,怎么做
- Https是怎么回事?
- 除了日常开发,其他有做过什么工作?比如持续化集成,自动化测试等等
滴滴
- ActivityA跳转ActivityB然后B按back返回A,各自的生命周期顺序,A与B均不透明。
- Synchronize关键字后面跟类或者对象有什么不同。
- 单例的DCL方式下,那个单例的私有变量要不要加volatile关键字,这个关键字有什么用
- JVM的引用树,什么变量能作为GCRoot?GC垃圾回收的几种方法
- ThreadLocal是什么?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 详细知识点思维脑图(技能树)】
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。
详细整理在Gitee点击可见;
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。