简介
35岁左右对工程师而言是个不同寻常的年龄段。技术人有可能面临人生中的转型:从纯技术岗转向管理岗。也将面临诸多新的挑战,关于组建团队、领导以及KPI设置等。本文将讲述阿里资深技术leader张荣从去年1月底接手CRO线NLP算法团队以来,在团队组建、能力建设、以及管理上的一些思考。这些思考从实践中来,总结出一套方法论,希望能给予转型中的技术人一些启发。
这期间很多面试经验,正直现在面试季节,分享给大家。有想法和问题的欢迎在评论区留言。
正文
1.面试问得最多的是自定义 View 基本每家都问!
主要问 View 的绘制流程,自定义View的步骤。有时会涉及到细节;比如 PhoneWindow 实例是在哪个类哪个方法中实例化的?Selector 是怎么实现的?View 动画是怎么实现的?为什么移动后点击事件还在原来的位置?
2.Android 系统源码部分(这是大厂特别喜欢问到的)
事件拦截和分发
进程间的通信方式
应用的创建启动流程
Handler 是怎么导致内存泄露的
第三方库的源码,Glide、OkHttp 和 Retrofit 问得比较多,MVC,MVP和 MVVM 开发模式优缺点。
常用设计模式理解问得也多,大公司 Binder 驱动和虚拟机方面问得比较多。
3.数据结构和算法,Java 的常用集合和实现原理
比如 ArrayList ,LinkedHashMap 的实现原理,缓存淘汰策略,红黑树和二叉树,最短路径规划,海量数据筛选,很荣幸的是面试官目前还没有要我手写算法!
4.性能优化
如何检测一段代码的执行时间?
界面卡顿如何修复?
滑动不流畅怎么处理?
50fps 有什么办法可以提高到 60fps?
内存泄露怎么检测?
leakcanay 的原理?
5.线程和线程池,
wait() 和 sleep() 的区别?
同步锁
线程池的参数详解?AsyncTask 源码参数详解?
…
我能记得的大概就这些了。最后还啰嗦一下,有很多公司标明了,你必须要会 C 和 C++, OpenGL 或 OpenCv 或音视频编解码!这里要小心,我写的是熟悉,因为像音视频和 OpenCv 图像处理这些方面,没做个6、7年最好不要写精通!
来上海感觉学历真的很重要,大公司都要求本科以上,而且要能查的。如果没有学历这是个硬伤了,除非技术很强,或者有内推的话也会看情况而论。
小公司面试官一般不会问你细节,但大公司面试官都会抓细节,所以细节要清楚,概念不能模糊,但一个问题有些细节部分可能面试官也不太了解,如果你都能说出来那就不错了,所以面试就是谁面死谁的问题了。还有不要起争执,态度谦虚,心里敬佩人家。我们就是来聊聊,并不是来讨要工作的。
最后
题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料免费分享出来。
【Android学习PDF+学习视频+面试文档+知识点笔记】可以点击这里即可获取免费领取方式!
【Android思维脑图(技能树)】
知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。
【Android进阶学习视频】、【全套Android面试秘籍】
存中…(img-fNE7qC9n-1622039500533)]
【Android进阶学习视频】、【全套Android面试秘籍】
希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展