面试复盘 | 网易互娱 一面 8.11
序言
前半个小时面试官不在,手撕第一道算法。
面试官来了之后花一个小时面试。
最后又补了道算法题。
面试问题
算法题:487. 最大连续1的个数 II(进阶:按无限流实现,即不能存储所有输入元素)
自我介绍
介绍一下项目和论文。
你在项目中数据库查询有什么经验?
MySQL有哪些索引,他们的区别?
讲一下HashTable和HashMap的区别?(hashtable没用过,不知道)
讲一下ConcurrentHashMap的实现?
讲一下HashMap的扩容,为什么扩容时会有并发问题?(跟他battle了好久,他放弃了,“你这样说也可以”)
讲一下volatile的功能和实现。
讲一下TCP和UDP的区别。
TCP为什么是可靠的?
你说的TCP的可靠性原因之一是流量控制,为什么流量控制能保证可靠?如果流量过大服务器收不到的话不是会重传吗?
讲一下I/O多路复用。
你编写过多线程代码吗?讲一下线程池?(他可能是想让我说各种lock和synchronized,我没反应过来,只说了线程池,那他就说那你说说线程池吧)
线程同步有哪些方式?为什么线程同步不使用共享内存?
讲一下协程。
讲一下页面置换算法有哪些?(只回答了FIFO/LRU/LFU,没答全)
口述下LRU的编程实现。
算法题:92. 反转链表 II
反问环节
网易代理的游戏是怎么实现?
答:各种模式,具体看运营怎么谈。有给服务器源代码的,有给客户端源代码的,各种情况都有...总结
第一道算法题没手撕出来无限流的情况。最后一道算法题又有边界问题。其他都基本答上来了。
吐槽两道题:
第12,面试官认为流量控制不是tcp可靠的原因,因为超时重传就可以保证不丢包,可是我觉得两道保险不是更好吗?
第15,线程不使用共享内存,是让我答共享内存的概念,意思是线程的资源是进程的,所以不需要共享内存,绕概念...
许愿个二面~