作者:julia_ 链接:https://www.nowcoder.com/discuss/752971?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网


1. 自我介绍

2. JVM内存结构

3. 堆如何分代

4. 为什么要分代

5. 回收算法

6. 回收算法有哪些具体实现?垃圾回收器

7. TCP三次握手

8. TCP 四次挥手

9. 为什么建立三次、断开是四次

10. 四次挥手套接字的状态转移

11. 输入url的流程

12. http的request、response的具体格式

13. 你们的服务是如何部署的?SpringBoot中的Tomcat

14. LRU 如何实现?在哪用过

15. LRU put get 时复

16. 算法题

100G文件,每行是一个长整数,总行数为N

主机内存1G

结果:输出最大的K个数 (K << N)




1.职位分析

    快手,刚开始下载过,用过一段时间,后来卸载了就再也没有下过,手机里也没有抖音,害怕看短视频破坏专注力,所以直接就不安装了,程序员工作还是很需要专注力的。

    前几天成龙大哥入驻快手了,这感觉,好像现在不是进快手就是进抖音,短视频行业现在就是二分天下的局面了吧,其它短视频平台的体量和知名度都没这俩大,不过短视频的未来是啥呢?搞不明白。

    加班强度应该不小,用户体量这么大,bug肯定很容易出现了,还有各种节日的版本更新,再加上大厂通常节奏,加班是正常现象,虽然现在都双休了,拒绝加班了,但实际情况只有城里人知道了。

    当然,福利待遇也不会差,还能有股权激励的机会,财务自由的可能还是很让人向往的,谁想一辈子打工呢?


2.面试分析

1)面试时间:中等

2)面试内容:中等

3)试题难度:中级+

4)试题拓展:多

5)核心考点:JVM+垃圾回收+TCP+浏览器请求流程+算法+算法题

6)总结:三面确实难了许多,一面筛人,二面看技术,三面看能力和天赋。JVM一般的人都涉及不到,即使是开发多年的程序员也涉及不到,但大多数人都会看相关的内容,jvm的内存分布,垃圾回收相关内容都能说上一二,但没有实战机会也只是纸上谈兵了。接着问了几个常规问题过渡一下,顺便考察下知识广度,然后就问了LRU算法,果然还是想找有算法天赋的好苗子啊。


3.问题解析——LRU

LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。


大家有什么关于面试想了解的内容,可以在文末留言~