3.1 自我介绍
这是一个面试必备环节,不管你是第几轮面试,开场都需要自我介绍。鉴于疫情这个大的环境背景,现在基本都是远程面试,根据公司的要求进行电话面或者视频面。这样面试的好处在于避免了线下直面面试官的压力,从心情上来说比较轻松。这时候主要的注意点在于:
控制时间,不要说一些多余的废话,直入主题,一般一两分钟时间就好
声音清晰,语速适中。一般来说大家都会有些紧张,但控制自己说的话能够准确的传达到面试官耳中是非常重要的
自我介绍主要介绍自己的能力,擅长的领域,简单谈谈做过的项目,不用细说(面试官如果感兴趣的话会在后续具体问项目的细节)
总的来说这一阶段是面试官给你初步影响分的环节,需要认真对待!
3.2 中场寒暄
自我介绍完之后,面试官通常会问大家一些非技术性的小问题(当然不排除有单刀直入直接问技术的),此时就是一些平常的聊天。一般来说会问一些学校中生活学习相关的问题,例如担任过什么职务,参加过哪些社团等。同时可能会简单聊一下职业规划,总的来说这一环节不存在什么答不上来的问题,保持好心态就可以了。有些面试中这部分也可能放在最后的时间,总之只要提前有所准备就好了!
3.3 手撕代码
不同于之前的笔试环节,面试官为了检验同学的临场发挥,同时也观察编程习惯、代码风格等,基本上在面试环节中都让同学们手撕代码(当然电话面没有)。据我的经验就Android而言题目大多是leetCode中等难度类型,只要你能通过之前的笔试环节,这部分当然无需担心啦~当然如果手撕的时候恰好遇到一些不太懂的问题,或者一时紧张脑海空白了,也可以向面试官求助一些解题思路。只要不是一直发起求助都是没问题的,面试官也会给予你理解!
3.4 技术面
这部分就是考验大家的知识储备了,我总结了一些去年遇到的有价值的Android面试题(Android基础方面的就不列举了,我相信大家都会_),供大家参考:
必问的集合:
-
app怎么保活
-
怎么给所有的点击事件全局埋点,hock 系统的click事件
-
用到了哪些设计模式,都运用在哪里,解决了什么问题。
-
做过哪些性能优化,优化成果怎么样,是否有数据支撑,数据来源怎么取。
-
线程开启的方式
-
线程池使用,关键参数的取值依据和使用
-
线程同步的方案,常用的锁
-
synchronized 和 volatile 关键字, volatile 是怎么实现可见性的
-
Java 中有哪些原子性操作
-
jvm 堆/栈/方法区/本地方法栈/程序计数器 分别有什么作用, gc 垃圾回收流程
-
JVM / Dalivk / ART 了解多少,有什么区别
-
handler 线程切换执行实现原理,
-
handler 延时执行实现原理,
-
messagequeue 数据结构,
-
handler.sendEmptyMessageDelayed() 和 * handler.postDelayed() 区别,
-
如果让自己实现一个handler ,需要怎么实现,有哪些地方需要注意的
-
怎么实现线程切换的
-
map 和 flatmap 操作符的区别
-
rx背压问题,怎么解决的,使用RXJava中还遇到哪些问题,怎么解决的
还有些其他的,就不一一展示了,至于其余的一些框架或其他工具,面试官会根据你简历上的技术栈做出相应询问,只要你熟练使用过这些技术,基本上都不会难倒大家的~
关于面试,你必须要知道的事情:
做好个人职业规划是前提!
面试时,几乎所有人都会被问到一个问题—你的个人职业发展规划是什么?
其实职业规划是会反映出你和公司今后发展方向的匹配度,也会侧面反映你的个人能力。
针对性地“准备”好你的职业规划,让企业看到你并不是胡乱海投,同时也是为自己厘清方向。
参加面试的小伙伴一定要根据自己的情况做好职业规划,明确发展方向,不仅可以提高面试成功的概率,更是对自己未来负责。
冲击大厂需要储备哪些技能?
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 泛型