3.31日早上电话突击面试,当时我还在睡觉,迷糊中接到了电话,一开始以为他只是和我确认时间,没想到问完信息之后直接开始问问题了,我当时没反应过来,说我现在不太方便,等20分钟再电话面的。我没想到这居然就是一面
面完就约了4.1号的二面视频面,面完等了几天接到了4.4号的三面电话面通知,然后9号接到了10号hr面的通知,面完之后3天后也就是13号接到了oc
以下是我被问到的绝大部分问题,有那么几个实在想不起来了,不分先后。文末附面试题解析以及面试资料。
android基础:
activity的生命周期
activity的启动模式
service的生命周期
android进程和线程的关系
android进程间的通信方式
Handler机制简述,作用,要素,流程
Handler中消息队列为空时会发生什么情况?
looper,消息队列,handler的数量对应关系,为什么?
消息队列delay之后会发什么?
内存泄露是什么,为什么会发生,常见的内存泄露的例子,怎么解决
内存泄露和内存溢出的区别,什么会导致内存溢出
什么是ANR?什么情况会发生?如何避免?怎样定位?
设计模式,体现在android的哪些地方
java基础:
==和equals
Hashmap各种,基本都问到了
Arraylist和linkedlist
进程和线程的关系
进程间通信方式
线程间通信方式
死锁
实现线程安全的方式
synchronized关键字,底层,使用方式
synchronized和lock的区别
volatile和synchronized的区别
jvm结构,作用,各存放了什么数据
运行时常量池
讲讲对gc的理解
4种引用,强软弱虚
gc算法,分代策略
介绍下cms收集器(g1)
类加载过程
双亲委派模型介绍,原理,好处
网络:
三次握手,四次挥手
tcp和udp的区别,传输数据时的区别,怎么传输
tcp可靠性
滑动窗口,流量控制,拥塞控制(4种方法)
输入url到显示主页的过程(基本每面都问)
http和https
https数据传输加密过程(基本每面都问)
什么是网络字节序,为什么可以保证在传输时能够被正确解释
算法:
海量数据topk问题,要详细讲(小根堆怎么实现的,快排怎么实现的)
十进制转十六进制
输入一篇文章,再输入若干关键词,输出这些关键词至少都出现了一次的最小范围
强烈建议多看源码,特别是比较关键的,很多问题都是从源码里抠出来的,比如handler。。。
因为有两面都是电话面,所以代码实现基本集中在视频面,3面是让口述的算法,要详细原理实现的那种
其他的我觉得都算ok,面试官挺好的,特别是3面面试官,我当时还调侃他腾讯双休咋你还是周日面试的呢
自己也看了很多别人的面经,特别是海量数据topk问题,3面前看到一个面经有提到,然后去了解了下,3面真被问到了,不然就扑街了,所以也把自己的面经分享出来,给后来人留点有用的东西
祝愿大家都能顺利通过面试,拿到理想的offer
腾讯25K面试解析以及资料
关于上面所说到的知识点,我都放在GitHub上了,如有需要,可自行查看。
同时我也推荐一下我的Android交流裙Android技术交流,不仅可以免费获取资料,而且还能有一帮大佬为你摆平关于Android的技术问题~