一面

算法:30min

(1)合并三个升序字符串,不能创建新的链表,而是使用已有链表实现。——手撕

(2)在一个长字符串里面,找出是否出现过的某个字符或子字符串。(遍历或者hashset手撕)

场景题:

(1)给两篇文章,怎么从文章1中找出文章2重复的内容,前提是:内存资源有限。

考虑因素:内存有限、高效

深度:除了使用哈希、布隆、MySQL、分段比较这些有没有其他的方法?

引申问题:如果有五个服务器、现在需要进行负载均衡,可以怎么实现?(哈希取模,虚拟地址分配到哈希环,实现虚拟地址和服务器地址映射)

(2)如果有一个10G的文件在服务器中,我现在客户端需要从服务器下载,但是网络不是很稳定,并且能保证用户能下载完文件,传输数据用的udp协议不是tcp协议,应该需要注意些什么?

考虑因素:网络不稳定,传输方式居然是udp。。。

感觉在应用层实现一个tcp机制,保证数据传输的有序、可靠性。

常见八股:

(1)http和https之间区别?

(2)为什么现在大部分请求还是http而不是rpc?

二面

项目:

(1)比较熟悉的项目是什么?

(2)微布校园的难点有哪些?怎么解决?(缓存雪崩和击穿、缓存和数据库一致性问题、慢SQL优化)

(3)如果缓存放到一个进程中去读取会出现什么问题?

场景题

(1)如果服务器资源有限如何合理利用缓存?(我的理解是部分经常读的数据写到缓存,经常就修改的就不写入缓存、从数据库拉取)

(2)如果资源有限,有大量数据需要处理,怎么去合理利用内存?(我想的是分段处理数据,类似于MySQL的分页查询,分段处理数据)

常见八股

(1)怎么获取http请求的一些头部、body部分的?

(2)http请求的一些数据是怎么到达代码中的? (没有回答上来)

(3)http中post和get请求有什么区别?

(4)http传输数据过程中会有什么问题?