- Json、XML差异?说全点,能想到的所有差异。然后protobuf不小心被我提出来了,开始扯三个的差异。。。。然后问优缺点、服务端客户端使用及接口更新的影响范围如何缩小
- 左值,右值区别
- map用什么?红黑树
还可以用什么方法实现?(为什么不问我红黑树是什么?已经准备好详细的说。大脑短路答了个,二分搜索。第二个问题就跪了,别人的面经引到什么就谈什么呀。。。)
- 网络懂么?用的多么?不多,就用过tcp。嗯那就说这个,客户端发送1kb的客户数据,通过tcp与udp发送,两种协议读取时读到的数据有可能是多长?没有深入了解过,感觉都接收1kb
有没有其他可能?tcp也有可能分包
假设已经收到了客户数据呢?不知道。。。(当时问了好久也没想出来答案,这是不是考察udp有可能收到其他广播的信息?)
- struct、class的区别是什么?默认private/public
还有什么?struct支持C语言解析
还有什么?不知道
- 函数重载是怎么实现的?name mangling
那参考了哪些信息?函数名、参数及类型、参数顺序
还有什么?没想到还需要什么信息
那是否考虑返回值类型?不清楚,但我想重载函数使用不会根据返回值而判定,所以我认为可能没考虑
- 如果有多线程任务怎么办?理解错了,回答提到了线程池
线程池怎么实现?XXXXX,说的是回调方式,用bind、function
除了回调还有什么方法?(没想到)
- 假如现在有多个任务安排给线程池,分别从吞吐量、响应时间两种方面进行任务安排,分别如何安排?(完全理解错误,答了好几次,都不在点上,现在知道应该是task scheduler)
- 多线程与多进程的CPU调度差异?没学过
- hash知道么?怂了,不知道
- hashmap冲突怎么办?不知道l?? ?list与vector区别
- LRU算法知道么?没听过
- map是线程安全的么?不是
如果多个进程同时访问map,如何保证安全?我说的建立镜像供多线程使用
问那能保证多个线程的操作顺序不变么?不能
那如果有大量线程访问都要建立一个映像?是的,没想到其他合适的方法
- 还问了项目中提到的心跳包、守护进程怎么实现的?如果守护进程崩溃了怎么办?
- 换了个问题,短网址服务怎么做?通过用redis做存储,做长短网址映射
然后问了redis突然崩溃怎么办?持久化,两种方式RDB/AOF
这两种分别怎么实现的?不知道(细节模糊了)
回到短网址服务,如何做映射?md5
没这么长的短网址,要缩减为短的,有很多这样的算法,那如果两个网址缩短后一样怎么办?再加一个id做标志位
那如果有1万个网址一样,怎么办,id从1到1万?不知道
https://www.techieliang.com/2019/03/1550/