前言
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。