背景
985毕业至今刚好一年+四个月,我曾做过两三个月的测试感觉不是很合适,后面选择从事Android开发,大学学习过一段时间,还挺香。
两个月前春招还在热火朝天中,内心贼想去大厂试波水。于是乎,腾讯打电话叫我面试去。不过真真的是傻眼了,果然一句话说的真对:面试造火箭,工作拧螺丝!!整个一面下来表示怀疑人生…
没想过一面就能问这么多,疯狂轰炸,连环21问,不得停歇。感觉我这辈子都不会忘记这次面试经历了,这里给大家分享一下腾讯试水的细节,我想,恐怕你也会表示同感。
面试过程
- 栈和堆的区别
- 接口和抽象类的本质区别
- String、StringBuffer和StringBuilder的区别
- 注解、反射、泛型
- Handler消息机制,生产者和消费者模型
- View、ViewGroup的事件传递机制,如何解决滑动冲突? 回答如何滑动冲突最好是举出实际的场景和怎么解决的
- View、ViewGroup的绘制流程
- okHttp、Retrofit的源码,原理
- 解释一下什么是MVP架构
- Https原理,加密算法
- RecyclerView的缓存机制
- 常见的设计模式主要问到了这几个(单例、代理、适配器、建造者),先说概念,然后面试官会问具体的使用场景
- 最新的Google AAC架构(ViewModel、LiveData、Room等等)有没有在使用,以及背后的实现原理
Kotlin有没有在使用,问这个问题的公司,基本上自己的公司在使用Kotlin开发新App,要么在使用Kotlin迁移、重构、与java混合在一起 - 开发的App有哪些亮点,难点、如何排查线上的bug,有没有重构代码的经验
- Android常见的内存泄漏原因,以及检查工具,主要是问如何使用Android Profile检查内存泄漏的,性能分析怎么做?以及第三方检查内存泄漏的工具LeakCanary的原理?
- Android相关优化(网络优化、布局优化、电量优化、业务优化)
- 介绍一下Java 的内存管理。回答了JVM垃圾回收机制、JVM的内存模型(忘记讲JVM的内存分配)让你实现俄罗斯方块,你会使用了哪些数据结构和算法?
- EventBus实现原理和观察者模式在开发中的运用?
- 动态代理模式如何运用?
- App是如何沙箱化,为什么要这么做?
以上的面试题,主要是Android应用层知识,需要面试之前造造火箭的,还需要平时的耕耘、积累和总结。
面试结果可想而知,挂了,后面又陆陆续续面了几个大厂,有几个进了复试,没去,因为当时已经拿了浦发信用卡offer,薪资待遇还可以,就接了offer。
总体发现整个面试下来,投简历发现今年996的公司还蛮多的,前两年没有这么多。有的人事,boss会直接说是996,要么自己面试过程中问是不是996,996的公司是拒绝的,压根不想去。面试的过程中发现自己的信心不够,技术能力也不够、自己也着急。面试想想这几点要特别注意。
- 像大一点的厂,投简历过去,在加上面试的时间回复,需要两周。
- 如果面试官过程中,发现面试官没有问什么技术问题,或者问的问题不够深入,基本上可以断定这家公司不是靠技术作为驱动公司发展的。
- 提高自己的信心,自己要会的多,对知识点的理解要深入。
关于知识梳理,这里再分享一下我面试这段时间的复习路线:(以下体系的复习资料是我从各路大佬收集整理好的)
一、2020大厂面试高频知识点
一、图片
二、网络和安全机制
三、数据库
四、插件化、模块化、组件化、热修复、增量更新、Gradle
五、架构设计和设计模式
六、性能优化
七、Android Framework
八、Android优秀三方库源码
二、Jetpack架构组件从入门到精通
- Android Jetpack - Navigation
- Android Jetpack - Data Binding
- Android Jetpack - ViewModel & LiveData
- Android Jetpack - Room
- Android Jetpack - Paging
- Android Jetpack - WorkManger
- Android Jetpack架构组件之Lifecycle
- Android Jetpack Compose 最全上手指南
三、Framework精编内核解析
主要内容包含:
- 深入解析Binder
- 深入解析Handler
- Dalvik VM 进程系统
- 深入解析 WMS
- PackagerManagerService
四、Kotlin强化实战(附Demo)
第一章 Kotlin入门教程
第二章 Kotlin 实战避坑指南
第三章 项目实战《Kotlin Jetpack 实战》
- 从一个膜拜大神的 Demo 开始
- Kotlin 写 Gradle 脚本是一种什么体验?
- Kotlin 编程的三重境界
- Kotlin 高阶函数
- Kotlin 泛型
- Kotlin 扩展
- Kotlin 委托
- 协程“不为人知”的调试技巧
- 图解协程:suspend
五、Android设计思想解读开源框架
- 热修复
- 插件化
- 组件化框架设计
- 图片加载框架
- 网络请求框架
- RXJava 响应式编程框架设计
- IOC 架构设计
- Android架构组件Jetpack
六、NDK模块开发
- NDK 模块开发
- JNI 模块
- Native 开发工具
- Linux 编程
- 底层图片处理
- 音视频开发
- 机器学习
七、高级UI,自定义View
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。
不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
大厂面试题整合
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
该准备准备,该刷题刷题,临时抱佛脚至少体现了你对面试重视是不是?等你题目刷到一定程度,你就会发现自己的能力有了一个量变到质变的提升。
下面是我在平时的工作中就开始慢慢整理的一些面试题,有兴趣的朋友可以看看:
需要的朋友只需要 点赞支持一下 后,然后【点击这里免费获取】
如果你已经错过金三银四,那么现在学习久是一个特别好的时候,学几个月,增强内功(技术能力)和外功(面试经验)。在下半年的金九银十,找一个更棒的平台,搞定一个更好的职位,给自己一个更好的未来。