其实不是Android不行了,而是你跟不上了
我的很多读者都在反馈说,现在一个岗位可以收到的简历数,是前几年的几倍。我们必须承认,僧多粥少就是 Android 行业的现状,别说初中级工程师,就是高级工程师也是一抓一大把。企业招人的眼光也越来越高,如果你没点“真东西”,是真的挺难的。
前几天和一位 Android 前辈聊天,他说面试中很多工程师,对特别基础的问题都停留在“使用过”或者“听说过”。没有深入到技术细节里,在竞争激烈的市场中就只能被淘汰。下面这些,是他提到的几个问题,你能快速回答上么?
-
SoftReference(软引用)在内存不足时会被虚拟机回收,那它会不会导致 OOM?
-
Android 的 Touch 事件中 CANCEL 事件是如何产生的?哪些场景下会发生 CANCEL 事件?
-
Handler 中的 Looper 无限循环,为什么没有阻塞UI主线程?
-
你在简历中写“精通多线程”,那么:线程中自己的“工作内存”指的是什么? 为什么阿里开发规范中不允许使用 Executors 创建线程池?
你一定想说“面试造火箭,工作拧螺丝”。实际上,你的答案反映了你对技术理解的深度,以及解决问题的能力。 听起来很套路,但企业需要的是能对自己提交代码负责、对使用每一个工具负责的「高级/资深 Android 开发」。
一面问的 Java 和 Android 基础
1、Jvm虚拟机
2、messageQueue会不会阻塞ui线程
3、对象锁和类锁
4、之字形打印树
5、还有其他的记不清了,主要是我对二面印象太深刻了。
二面问的 Flutter 和 Dart
1、dart是值传递还是引用传递
2、Widget和element和RenderObject之间的关系
3、widget的root节点
4、mixin extends implement之间的关系(除了extends其他的没怎么用过。。)
5、jvm内存模型(感觉这个是面试官可怜我,看我什么都不会才问的=。=)
6、Future和microtask执行顺序
7、dart中…的用法(基本没用过。。)
8、await for(没用过。。)
说实话,第一个、第三个、第六个我准备的话应该能答出来的,但是一个多月没碰Flutter了,忘了都差不多。。。
等下把二面的答案写出来,希望能帮助后来人。
最后
想要了解更多关于大厂面试的同学可以**点击这里免费获取《面试文档》**除此之外,我也分享一些免费的优质资源,包括:Android学习PDF+架构视频+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 这几块的内容。分享给大家,非常适合近期有面试和想在技术道路上继续精进的朋友。快来获取学习资料吧~