-
volley的源代码,在图片缓存部分讨论了挺长时间,http中缓存机制,Last-Modify的作用等;
-
fragment的生命周期 ;
-
service一些知识 ;
-
事件分发机制 ;
-
Binder实现机制,Stub类中asInterface函数作用,BnBinder和BpBinder区别;
-
gradle中buildToolsVersion和TargetSdkVersion的区别是什么;
-
手机适配一些方案 ;
-
hashmap的实现原理 ;
-
静态方法是否能被重写;
这些大概聊了1个半小时,开始的时候还有些紧张,慢慢聊开了,就好多了,面试官的语速有点快,老是需要面试官重复一遍,我也不经意间语速也变快了,不过能看出来面试官还是很厉害的。
阿里二面
-
3次握手和4次挥手的原因,以及为什么需要这样做;
-
数据结构,搜索二叉树的一些特性,平衡二叉树;
-
hashmap是如何解决hash冲突的;
-
进程与线程区别;
-
写了一个二分查找和单例模式;
-
http中的同步和异步;
-
聊了一些项目上做的东西,问了问职业规划;
由于二面面试官不是做Android,本来面试我的人临时开会去了,所以这一轮面试没怎么问android相关知识,不过二面面试官一直是微笑,所以这一轮很轻松,更像是一起讨论问题。
面试完已经是下午4:30了,由于面试当天是星期五,而周五会议比较多,所以等了会,二面面试官说三面面试官在开会,面试另约时间,我还是说这次一次面试完吧,这一等就等了2个半小时,期间hr跟我说三面面试官是个大牛。
阿里三面
-
我认为Android做的优秀的几个地方,然后又根据我说的问了问比较深入问题;
-
Android是如何进行资源管理的;
-
java比较重要的几个特性;
-
网络五层结构,每一层协议,由于我网络不是很好,还问了一些其他的问题(例如MAC地址和ip地址的区别等);
-
为什么离开原来公司,以及职业规划,然后因为面试完大概就晚上8点了,就先让我回去,下周让hr跟我联系,我想这是应该通过面试了吧;
阿里HR面
企业智能事业部Leader面后又收到了HR面的面试通知,这一轮面试大致问了以下问题:
-
你为什么要离开现在的公司
-
你们公司的岗位等级是怎么评定的,你现在是什么岗位等级
-
谈谈你在公司的绩效情况
-
你觉得你做的最有成就感的一件事
-
你一般解决问题的方法有哪些
-
你是因为什么契机选择做前端
-
你有对你所在的公司做过什么流程或制度规范上的改进么
-
你最近在看什么书,和工作相关么,你为什么要看这些书
-
看到你之前还面试了其他两个部门都挂在了一面,你感觉是什么原因
-
你期望的薪资待遇是多少
**小提示:**这里HR会问的其实不止这些问题,例如你为什么喜欢Android开发这个岗位、你未来的职业规划、你觉得你的优点和缺点有哪些、为什么选择阿里巴巴、对之前几个面试官做下评价、你用过阿里的哪些产品顺便谈谈这些产品的优缺点、你对于互联网是怎么理解的…
面试感受:
阿里技术还是很厉害的,从面试官的水平就可以看出来,尤其是外卖核心部门,办公环境是不错,但是感觉就是有点乱,不知道是不是因为今天面试的人很多,基本上一直有很多人来回走动,有一些嘈杂。
分享一些面试思路
面试过程即是一个 自我考察 的过程,同是也是一个 非常讲究方式方法 的过程,接下来通过这两个方面来展开阐述。
- 自我考察
技术实力是面试的大前提,你需要非常清晰的了解自己,了解自己所要面试岗位,这是决定面试是否成功的先决条件。
比如我工作时间3年多,我要面试的岗位是高级Android工程师,那我这个自身素质是否能满足面试岗位所要求的条件?
其实这一点在我刚刚面试的时候也是拿不准的,因为在公司已经3年,这段时间对外界的发展其实是不了解的,所以我做了以下几件事。
-
把自己负责的项目业务进行整体总结。
-
把项目中用到的所有技术进行整体总结。
-
复习常用 框架/系统 源码,比如Glide,Okhttp,Reteofit,Activity启动流程,Hander,HashMap,锁等等常用的源码原理。
-
查看BOSS,拉勾对应岗位所要求的技能。
-
方式方法
面试环节中即便你技术很好,项目经验很丰富,你也不乏有知识盲区,也有未能顾及的技术点,当这些点集中出现的时候你面试的成功率也会大大降低。所以针对面试我总结了以下几个流程。
1.面试分为3个阶段(初期,中期,高offer期)。
初期 主要通过(BOSS,拉勾投递即可),初期主要投递小公司,这部分公司有两个目的。 第一是相互交流技术点,不断完善自己的技术覆盖度。 第二是了解当前市场的需求点。
中期 主要通过猎头去投递,这个阶段主要投递中场,这类公司要求技术深度会比初期公司要深一些,算法的考察会加重,同时面试官的技术水平也会偏高一些,甚至有的中场面试难度会达到大场的水平,这个中期尽可能的持续长一些,非常有利于后续的面试经验总结。
高offer期 这个阶段主要投递你的目标企业,切记面试优先级从最不意向的公司开始投递。投递的方式也是通过猎头,这样可以加快面试流程。以上的初中期更多的是完善你的技术覆盖度,以及你的面试感。为了是让你以最好的姿态去挑战你最想去的企业,这样一路走来你面试的成功率会大大提高。
- 沟通能力
面试除了考察你的技术实力以外,还有一点是比较重要的,那就是沟通能力,你面试的岗位越高,对你沟通能力的要求也就越高。
沟通是特别重要的一个点,这决定你是否能非常清晰的把你所知所想完整的阐述出来。
我们面试的过程就是自我营销的一个过程,所以当你觉得自己沟通能力不是很强的时候,那么你就需要定向的去总结几个点。
比如一个出色的自我介绍, 项目中遇到的最难解决的一个问题,如果让你设计一个架构你应该怎么设计,简单的介绍一下你负责的业务 等…
如何提升技能提高大厂通过率?
下面我提供一下我多年工作以来收集整理的学习路线,给大家做个参考:
学习一线大厂的各项技术:
大厂是我们的技术先驱,不仅仅是各种技术,还有很多令你大开眼界的使用方法,学习这些有利于自己竞争力的提高,深入理解后也可以提升你的学习效率。
现在竞争这么激烈,只有通过不断学习,提高自己,才能保持竞争力。
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
![](https://img-blog.csdnimg.cn/img_convert/4fa74fbaf29e025b71c78ce9e
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
57c4137.png)
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 编程
-
底层图片处理
-
音视频开发
-
机器学习