Android 开发被迫失业在家带娃,一个月后拿下百度Offer

自我介绍

本人毕业于某二本渣院,从事Android开发4年,之前是在一家小型的初创工作做Android开发,由于今年公司业绩的下滑比较大,直至今年的九月份左右宣布破产,而我也随之失业了。

于是我处于失业状态在家带娃,在一次偶然的机会,我朋友帮我弄到了一个百度Android开发岗位内推的名额,我抱着试一试的心态进行投简历,随着简历投出一个星期没有什么回应,本以为没有机会时,突然接到一个面试通知的电话,心里还有点开心的。于是连忙在家开始疯狂刷题,准备后面的面试。

下面是我的面试过程

一面(电话面,大约1h):

1. Java常见的集合?Android里面的集合用过吗?比Java的有什么优势
2. 进程间通讯的几种方式,项目中有用过吗
3. 图片加载用的什么?Glide,Glide的优点,生命周期是如何绑定的?Glide的缓存?LruCache的底层实现?LinkeHashMap,LinkedHashMap的底层实现?
4. 如果显示一个1:1的图片?自定义View重新测量宽高,约束布局?约束布局的好处?主要在项目中用在哪里?LayoutAnimation用过吗?MotionLayout用过吗?
5. 简述handler,创建Message的方式,这种设计是什么设计模式?子线程怎么创建Handler?Looper为什么不会阻塞主线程
6. 一个abc的Activity任务栈怎么启动一个def的任务栈
7. 设计模式,说几个常用的设计模式
8. 说说MVVM,jetpack,kotlin
9. 说说AndroidX
10. 热修复
11. Activity的启动流程
12. ViewPager Pool了解吗
13. 说说自己写的最复杂的一个页面

二面(现场面):

1. JVM:gc算法,gc分代
2. java的泛型,super和extend的区别?泛型擦除
3. HashMap的原理?怎么保证线程安全?HashTable、ConcurrentHashMap内部怎么实现的?分段锁、共享锁、公平锁?
4. 自定义View的流程?onMeasure怎么测量的?MeasureSpec的三种模式?invalidate、postInvalidate、requestLayout的区别?
5. 代理模式
6. leakcanary的工作原理
7. synchronized的工作原理
8. OkHttp的优点,回答的不好,可能是继续想问Http相关的,但是回答的不太好,所以问的不是很多
9. 又问到了Handler,几乎所有能问的都问了
10. Binder的通讯过程:具体server和client的通讯,为什么是一次拷贝
11. 如何加载大图?图片压缩的几种方法?采样率压缩是利用的哪个类,具体怎么设置的
12. 内存泄漏
13. 独立开发的项目架构怎么设计的

三面(现场面):

主要是聊项目,看项目,项目中涉及的技术难点

四面(现场面):

1. 说说Java的面向对象
2. Java架构设计的基本原则
3. Java的几个特性,他们之间的关系?
4. Activity、view、window的关系
5. 说说Android中的几种Context?他们之间的关系?
6. Binder通讯的流程
7. Activity的启动流程
8. 知道AAC吗?MVVM?jetpack?

五面(现场面):

1. 聊生活,技术和难点实现
2. 有什么优点/缺点
3. 怎么看待加班
4. 工作中遇到的最大的挑战/困难
5. 架构设计的基本原则
6. 架构设计需要考虑的问题
7. 直播的整个流程?是自己实现的吗
8. 视频卡顿怎么处理?
9. OkHttp网络请求的整个流程

总结

这次面试问的比较多也比较丰富,不仅问了技术理论知识,还问了曾经做的一些项目,聊到了项目中遇到问题是怎么解决的等一些问题,自己差点被一些题撩到了。庆幸的是最终还是拿到了Offer。

下面是我在面试前收集整理的一些往年面试题和一份《Android 核心知识点笔记》,这次面试能过有一半的功劳是靠这份核心知识点笔记,面试中问道的一些问题大部分有记录到,如果面试前能全部看我这份文档话,可能面试的更顺利一些。

如果大家需要进行参考学习或准备面试刷题,可以私信我回复我【666】或点击【Github地址】进行查看获取!!!

猜你喜欢

转载自blog.csdn.net/u012165769/article/details/110502558