前言
前面两次面试因为不能实习,所以一面就被刷掉了。这里不得不吐槽一下第二次面试,都约好了二面、发了邮件,然后一问不能实习,反手就把会议取消了,离谱(如流会议也是下了卸、卸了下 🤐 )。第三次面试在周六,连续3个小时的车轮战,嗓子都哑了。
一面 8.11 14:00:
1、自我介绍。
2、介绍Android项目。
3、Java相关:
(1)static关键字。
(2)final关键字。
(3)String,StringBuffer和StringBuilder。
(4)线程同步相关。
(5)线程不安全的例子及解决方法。
(6)访问控制权限 。
(7)垃圾收集算法。
4、计算机网络相关:
(1)HTTP与HTTPS区别。
(2)HTTPS加密过程。
5、Android相关:
(1)Activity生命周期。
(2)Handler机制。
(3)Activity的四种启动模式。
6、算法 :
(1)用数组实现一个队列,细节需要处理。
(2)找出一个排序数组中一个数出现的次数,需要优化。
7、反问。
总结:整个过程不是八股形式,每个问题都会深入,并且具体到实际的应用场景中。Android要求很高,这是我的弱项。算法的代码有许多细节没有考虑到,减分项。这次挂了就当是个教训,后面被捞起来连着三面。
一面 8.14 10:30:
1、自我介绍。
2、面试大半篇幅都在问Android相关。
3、计算机网络相关(TCP三次握手等)。
4、多线程相关(线程安全实现方式、线程池等)。
5、Java相关(类初始化顺序、组合继承等)。
6、设计模式相关(本人只会单例模式,所以着重问的单例模式)。
7、算法:二叉树的层序遍历和前序遍历 。
8、着重问可以实习不。
二面 8.14 11:30:
1、二面面试官年纪大一点,开始就先聊天,没有自我介绍。
2、Android相关。
3、问了一些算法思想。
4、这个面试官问的问题不太记得了,只记得他是现场搜的一些题,但是问的很深很细节,面试官应该是很懂的。
5、依旧问可以实习吗。
三面 8.14 12:40:
1、自我介绍。
2、着重聊了做的三个项目。
3、问一些规划类、岗位匹配度相关的问题。
4、反问(大概面试官看我连续作战,然后直接就反问了,我问了三个问题,面试官 讲了20多分钟,很详尽地从公司到团队层面进行了介绍,并且分享自己的一些经验)。
目前一直在面试流程中,没有任何消息 😅,太难过了,相信以我的能力还是可以上去的。
而在面试这段时间我也没有荒废,每天刷一刷面试题,看看各位前辈们的面试精力,也正是这些激励着我一直在进步,而我本人也有一套独特的学习方式,我就放在下面了,希望对大家有帮助。
学习方式
技能储备冲击大厂
Android学习是一条漫长的道路,我们要学习的东西不仅仅只有表面的 技术,还要深入底层,弄明白下面的 原理,只有这样,我们才能够提高自己的竞争力,在当今这个竞争激烈的世界里立足。
如果你觉得自己学习效率低,缺乏正确的指导,可以参考下下面分享我多年工作以来收集整理的学习路线,给大家做个参考
知识点
接下来分享的系统学习资源以详解各大互联网公司的 Android 常见面试题为主线,从面试的角度带你介绍必备知识点,以及该知识点在项目中的实际应用。
帮你在现在的基础上,重新梳理和建立 Android 开发的知识体系。无论是你短期内想提升 Android 内功实力,突破自己工作中的能力瓶颈,还是准备参加 Android 面试,都会在这份资料中有所一些收获。。
1.2020大厂面试高频知识点
- 图片
- 网络和安全机制
- 数据库
- 插件化、模块化、组件化、热修复、增量更新、Gradle
- 架构设计和设计模式
- 性能优化
- Android Framework
- Android优秀三方库源码
2.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 最全上手指南
3.Framework精编内核解析
主要内容包含:
- 深入解析Binder
- 深入解析Handler
- Dalvik VM 进程系统
- 深入解析 WMS
- PackagerManagerService
4.Kotlin强化实战(附Demo)
- 第一章 Kotlin入门教程
- 第二章 Kotlin 实战避坑指南
- 第三章 项目实战《Kotlin Jetpack 实战》
- 从一个膜拜大神的 Demo 开始
Kotlin 写 Gradle 脚本是一种什么体验?
Kotlin 编程的三重境界
Kotlin 高阶函数
Kotlin 泛型
Kotlin 扩展
Kotlin 委托
协程“不为人知”的调试技巧
图解协程:suspend
5.Android设计思想解读开源框架
- 热修复
- 插件化
-组件化框架设计 - 图片加载框架
- 网络请求框架
- RXJava 响应式编程框架设计
- IOC 架构设计
- Android架构组件Jetpack
6.NDK模块开发
- NDK 模块开发
- JNI 模块
- Native 开发工具
- Linux 编程
- 底层图片处理
- 音视频开发
- 机器学习
7.Android源码解析
“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。
主要内含微信 MMKV 源码、AsyncTask 源码、Volley 源码、Retrofit源码、OkHttp 源码等等。