前言
上回承诺过大家,一定会出 HTTP 的系列文章,今天终于整理完成了。作为一个 web 开发,HTTP 几乎是天天要打交道的东西,但我发现大部分人对 HTTP 只是浅尝辄止,对更多的细节及原理就了解不深了,在面试的时候感觉非常吃力。这篇文章就是为了帮助大家树立完整的 HTTP 知识体系,并达到一定的深度,从容地应对各种灵魂之问,也同时提升自己作为一个 web 开发的专业素养吧。这是本文的思维导图:
一面经历
开始面试,
(1)一来就问我tcp/udp有哪些协议(就记得http和dns解析,估计是看我专业是网络工程的)
(2)弱引用,软引用
(3)volatile关键字(突然不知道怎么回答,然后记起来了跟java内存模型相关,就说了一下jmm)
(4)多进程(莫名认为是多线程,说歪了)
(5)什么场景需要用到多进程(回答中说了推送)
(6)为什么推送需要多进程,有什么优势(不知道有什么优势)
(7)hashmap的数据结构(回答了维护一个entry数组,hash冲突,1.8中链表会变成红黑树,然后面试官没继续深究)
(8)anr分类有哪些,原因(具体不了解,就知道执行网络或者数据存储等耗时操作)
(9)anr定位(不会)
(10)activity生命周期
(11)activity从A打开B的生命周期(答错)
(12)事件分发
(13)使用过开发者选项吗(就用过显示过度绘制)
(14)kotlin相关,优点(简历上写了kotlin)
(15)kotlin协程(不会)
(16)mvp(回答不够发散,可以从mvc发散到mvp)
(17)算法题:链表有无环
事件结果
面试官:大致情况了解了,