简单介绍下背景 笔者双非末流渣渣一本毕业,工作已有6年多。年前从一家小公司CTO离职,准备年后“金三银四”换个更大的舞台。
疫情爆发,市场经济遭到沉重打击,大批企业裁员,整个三月都居家隔离。期间,阿里第一次电话面,未通过。
四月,海投大厂简历,积累面试经验,鹅厂视频面试,未通过;熊厂视频面试,未通过;阿里第二次电话面。未通过。
五月初,阿里第三次电话面通过,转视频初试,通过。出发杭州。
阿里一面 1.自我介绍 2.做过哪些项目,用过哪些技术 3.四大组件 4.activity生命周期 5.启动模式 6.线程状态 7.网络协议(每一层、还有TCP和UDP) 8.会不会网络编程 9.handler 10.JVM,内存模型那些 11.GC机制(有哪些方法哪些问题) 12.项目中的数据库 13.HashMap、HashTable、ConcurrentHashMap1 14.反问环节
阿里二面 1.自我介绍 2.TCP和UDP以及应用场景(三次握手四次挥手也是基本上都会问的) 3.算法题:字符串根据字典分割的问题。一开始给的解决方法时间复杂度太高,一直要求优化。 4.介绍做过的项目,沿着项目一直问下去(重点问遇到的问题以及解决的方式) 5.Binder通信机制 6.React Native跟原生开发的优劣 7.View事件分发机制和View绘制原理 8.反问,聊天环节 追问比较多,但没有很难的地方,没有什么我一个字也答不上来的。
阿里三面 1.自我介绍 2.广播和 EventBus 的区别? 3.搭建一个自己的图片加载框架思路,怎么做 4.Bitmap的内存计算方式、高效加载 5.Binder的通信过程?Binder的原理?与其他IPC方式的优缺点? 6.handler 的底层实现原理 7.RxJava各种操作符,设计思想。 8.卡顿优化,原理,操作 9.做过哪些优化?怎么实现,遇到哪些问题,怎么解决 10.提问交流环节
阿里四面 1.看过多少源码 2.网络协议okhttp中的缓存机制,dex加载流程,组件化的原理; 3.MVC MVP MVVM原理和区别 4.如果让你实现一个调试器,你会怎么设计?静态调试?动态调试呢? 5.热修复、插件化、组件化 6.Android Framework源码 7.你都用过哪些设计模式?说说当时具体的场景。为什么你要用方法工厂,另外两种呢? 8.kotlin、flutter区别优缺点,掌握多少 9.有什么想要问我的
阿里五面(hr) 1.项目经验 2.职业规划 3.马上要项目汇报了,PPT出问题了,你会怎么办 4.理想薪资 5.提问环节
面试总结 整体来说难度不是很高,一些细节处理问的比较多。更注重的是遇到问题的解决方案,对项目的设计和规划之类的。
大厂的正常面试流程周期一般是一到两个月,就算薪资谈完到 offer 最终审批下来可能都需要一到两周,这段时间心理是比较难熬的,因此建议大家尽量不要裸辞。面试完毕一般都会透露多久给答复,如果是猎头推的多跟猎头联系,大家要尽量想办法打听到最新的动态。