共计 3152 个字符,预计需要花费 8 分钟才能阅读完成。
前言
19 毕业于一所不出名双非本科大学,毕业时就有着一颗想进大厂的心,但又想留在成都,不违心去北上广,当初其实相当悔恨。当年在成都的大厂少之又少,再加上校招时十分致力地游玩,导致投的几个大厂面试都全副挂掉,也错失了进大厂最好的机会,所以我规劝大三的同学如果对本人的职业有谋求,有进大厂的幻想,在大三的时候肯定要好好筹备,在校招的时候拿 offer。
最初我在成都一家本地科技公司做了 Android 开发,两头也跳过一次槽,也是做 Android。但这几年工夫里总感觉公司能给的成长太慢,尽管本人也在学习,还是免不了焦虑,特地是像本人这种学历和公司背景都个别的程序员,要保障本人当前不被淘汰,我必须得做点什么。
于是我把所有能利用的集体工夫全副利用了起来,比方早上十点下班,我六点钟就会起床,刷两个小时面试题,八点钟洗漱之后去下班。早晨如果有工夫就会把早上刷过的题拿进去持续温习,花了两个月的工夫,一边预习数据结构,一边做题,LeetCode 下面的高频题根本都过了一遍。
花了那么多工夫刷题,都是因为本人算法太菜,以前没有进行专门的练习。题做得差不多之后,就开始温习专业知识了,具体内容我都会总结进去。前前后后筹备了三个月,我才敢进行内推,经验了八次面试之后,面试工夫又继续三个月,皇天不负有心人,终于在这个月等到了 oc。上面是面试内容,工夫太久了,可能记得不太全,但基本上蕴含了所有问题。
一面
都说字节的面试难度偏高,带着忐忑的情绪来到面试,没想到面试官是一个和颜悦色的爷爷型面试官,很快放稳了心态,开始面试。
- 上来先惯例自我介绍而后讲我的项目
- recyclerview 的缓存机制
- glide 的缓存机制
- 从 glide 缓存的 lruCache 登程让我讲一下本人怎么实现,一开始只说到了链表,起初面试官揭示效率,于是答复到了 linkedHashmap
- glide 缓存的弱援用说到安卓四大援用还有在我的项目中的应用
- hashmap 问得比拟具体
- == equals
- handler 机制
- 算法题是两个升序链表合并
- 总的来说这次面试体验还是特地不错的,面试官问的问题感觉一层套一层,往往在答复中说到了某个知识点,接着下个问题就会以这个知识点开始。
当天面试因为比拟缓和,让两个小伙伴给我面了两个小时,口干舌燥的加入面试,脑子也比拟乱哄哄,handler 的一个简略问题总是集中不了精力,还好面试官比拟有急躁没有给我提前结束。
隔了 7 天的早上收到了二面告诉,冲!
二面
下午 6 点钟开始面试,面试官不苟言笑显得十分业余,简略调试之后开始面试。
- 先是惯例自我介绍 + 我的项目
- Glide 缓存
- 图片优化(讲了我的项目外面 oss 存储的取缩略图办法,还有 Bitmap 相干的 decodeResourse 办法相干)
- Bitmap
- Glide 中的 LruCache 以及实现
- 讲几个相熟的数据结构(把整个 Collections 和 Map 讲了个遍)
- LinkedList 查找优化
- 诘问 HashMap
- TreeMap 中红黑树
- SparseArray
- 算法题是 ipv4 地址转 32 位 int 输入(不会位操作符而后面试官提醒用了乘 2 的办法)
- ipv6
- TCP
- http 几个版本的不同
- https
- 对称加密、非对称加密
- RSA 实现😇
- 安卓中网络申请子线程回调 UI 线程怎么弄(runOnUIThread、Handler)
- 多线程
- 线程池
- 操作系统中的线程竞争问题
- synchronize
- 自旋锁
- volatile(原子性?)
- CAS
总用时 90 分钟。
这次面试仍然感触到了字节面试官的急躁温顺与业余,卡住时面试官会疏导问题的答复,总体感觉如沐春风,人不知; 鬼不觉就一个半小时了。面到一半面试官说看得出来我筹备了很多(心田两行泪,的确是背地里刷了上千道面试题)
最初聊了聊部门的工作方向和工作工夫安顿,面试很顺利。
三面
- 自我介绍,介绍了本人实习写的刷新加载的组件
- 问我本人组件里怎么解决的嵌套滑动抵触,三个方面实现完满散发事件
- retrofit 动静 * 外面如果传的不是 interface 怎么办,这块我不分明,我就间接说不太分明,而后说了 retrofit – 对于注解的解决
- 注解生命周期,编译时注解解析
- 你用过 weex,说下 weex 实现原理,我说我没有看过 weex 源码,然而我实现过一个动静页面渲染框架,说了下我的渲染过程和实现计划。
- 最近想学的技术,说了音视频,然而因为筹备秋招放下了
- 为什么想学,说了本人之前做一个 APP,外面播放器无奈应用没认证的 Https 申请,打算自定义一个播放器,在底层解决证书这块,而后在说了下不晓得这样的计划可不可行。
- okhttp 外面怎么认证的,说了拦截器
- ConcurrentHashMap 同步计划, 而后问了 CAS
- 环状链表
- 隔了两天查到了到 HR 面的告诉,心田又快乐又打问号,本人都不晓得本人怎么过的。
HR 终面
- 询问了除字节跳动以外,还在看其余工作机会么?别离是什么
- 字节、XXX 公司、XXX 公司,你的优先级是什么,为什么?
- 实习薪资待遇是多少?你冀望的薪资是多少?
- 平时有什么喜好?
- 理解职位需要吗?
- 有没有想问的?
总结
我给大家的倡议就是慢慢来,不论是社招还是校招,制订本人的打算,肯定要有本人的常识体系,针对本人单薄的中央进行强化温习,不放过任何一个细节。
在字节面试前我也筹备了很久,刷了超多大厂面试真题,整顿出了一份一线互联网面试最新全套真题解析,知识点整理出来分享给大家:
笔记内容全副收费分享,有须要完整版笔记的小伙伴点击这里收费获取哦!
Java 根底
1. 动态外部类和非动态外部类的比拟
2. 多态的了解与利用
3.java 办法的多态性了解
4.java 中接口和继承的区别
5. 线程池的益处,详解,单例(相对好记)
6. 线程池的长处及其原理
7. 线程池的长处(重点)
8. 为什么不举荐通过 Executors 间接创立线程池
9. 不怕难之 BlockingQueue 及其实现
Android 根底
1.Activity 知识点(必问)
2.Fragment 知识点
3.Service 知识点
4.Intent 知识点
性能优化篇
1. 启动优化
2. 内存优化
3. 绘制优化
4. 安装包优化
源码流程篇
1. 开源库源码剖析
2.Glide 源码剖析
3.Android 面试题:Glide
4.day 20 面试题:Glide 面试题
5. 聊一聊对于 Glide 在面试中的那些事
6. 面试官:简历上如果写 Glide,请留神以下几点 …
7.Glide OOM 问题解决办法汇总
8.OkHttp 源码解析
9.okhttp 连接池复用机制
10.okhttp 流程和优化的实现
11. 一篇让你受用的 okhttp 剖析
12.OkHttp 面试之 –OkHttp 的整个异步申请流
……
最新面试题合集
1.android 事件散发机制,请具体说下整个流程
2.android view 绘制机制和加载过程,请具体说下整个流程
3.android 四大组件的加载过程,请具体介绍下
4.Activity 的启动模式
5.A、B、C、D 别离是四种 Activity 的启动模式,那么 A ->B->C->D->A->B->C->D 别离启动,最初的 activity 栈是怎么样的
6.Activity 缓存办法
7.Service 的生命周期,两种启动办法,有什么区别
8. 怎么保障 service 不被杀死
9. 动态的 Broadcast 和动静的有什么区别
10.Intent 能够传递哪些数据类型
11.Json 有什么优劣势、解析的原理
12. 一个语言的编译过程
……
因为本套笔记干货内容过多,没有方法一 一展现,须要这份完整版《2022Android 中高级面试题汇总》的敌人能够点击这里收费获取!心愿这套笔记能够帮忙到大家,让大家在面试的路线上畅通无阻!
最初
简历上写的货色肯定要会,个别都是针对简历来发问的。如果在预习的过程中感到艰难或者吃力,那就对了,等你熬过去了,就是胜利。最初,祝福大家都能拿到称心的 offer。