后期阶段
有了上面两个阶段的准备后,前两轮的基础面试基本没什么问题了。如果目标岗位是资深开发或者架构师的话,一般还会问到更底层原理和更抽象的宏观层面问题。
底层原理方面:比如虚拟机的内存区域和gc流程、tcp的流量和拥塞控制、https建立连接的交互流程等,这里可以去找对应的技术文章熟悉了解。
宏观层面:一般是架构模式(MVC、MVP、MVVM)、开发模式(模块化、组件化、模块组件化)以及设计模式相关问题,要能熟练掌握到灵活运用的层度,并总结出它们之间的异同特点。
另一大块就是算法了,某些一线公司比较喜欢考,比如今日头条在面试邮件中就明确指明要考算法。因此要对标你的目标公司是不是要考来进行复习。具体考哪些内容,以我面试的那些历程来看,基本都没超出《剑指offer》那六十几道题的范围(可能有对应题的变形),因此花一个礼拜左右的时间把那六十几道题弄懂并自己动手实现一遍基本ok,当然一些基础算法还要自己认真去总结学习,比如排序、二分查找、链表和树的基本操作等。
面试经历
主要是根据回忆总结的(会有遗漏点)。
1. 腾讯(QQ音乐)
腾讯面试涉及到的范围也很广,甚至问到了C++、Kotlin +Flutter ,也具有一定挑战性的,以下包括腾讯腾讯安卓客户端三面,最终拿到了测开岗位offer,腾讯面试