前言

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。