面经 csig_0318
面经
多态在编程中起什么作用?(对同一个接口,进行不同的实现)
数据库
ACID是什么?(原子性、一致性、隔离性、持久性)数据库的隔离级别分别有哪些?分别会出现哪些问题?(读未提交、读提交、可重复读、串行化)
TCP和UDP的区别?TCP是可靠的、面向连接的、基于字节流的传输层协议;UDP是不可靠的、无连接的、基于报文的传输层协议;
UDP不可靠,为什么还要用?- 正是因为 不可靠,所以带来了很多的优点:更快、更轻、更灵活;
HTTPS证书伪造的可能性?(HTTPS证书理论上不是不能被伪造,但直接伪造一个被浏览器信任的证书非常难,因为需要受信任CA的签名)B树和B+树的区别?B+树的非叶子节点不存放数据,只存放索引,支持在叶子节点层进行范围查询;- 由于
B+树的非叶子节点只存放索引项,不存放数据,因此可以一个磁盘页可以存放更多的索引项,导致B+树的高度不高,因此每次访问叶子节点的时候,需要对的磁盘IO更少;
服务器会不会存在
ping得通,但是tcp无法连接得状况?ping用的是ICMP;TCP连接用的是TCP协议 + 目标端口;ICMP通,只说明:网络层大体可达,对方主机大概率在线;TCP连不上,说明:对方某个端口不可用或者防火墙把TCP拦了;
反过来呢?
tcp可以连接,但是ping不通?ping用的是ICMP;TCP连接用的是TCP+ 端口- 所以只要网络策略是:禁止
ICMP但允许某个TCP端口,就会出现上述问题;
两个进程的虚拟地址有没有可能相同?
- 有可能,而且很常见。每个进程都有独立的虚拟地址空间和页表,虚拟地址只在本进程内有意义,不要求全局唯一。两个进程即使使用相同的虚拟地址,也可以映射到不同的物理内存;如果使用共享内存或共享库,也可能映射到相同的物理页。
进程的虚拟地址到物理地址的转换由谁来配置,可以让用户做嘛?
- 虚拟地址到物理地址的转换是由
MMU硬件完成的,但MMU依赖 页表 工作,而页表 是由 操作系统内核 建立和维护的。 - 用户态程序不能直接配置虚拟地址到物理地址的映射关系,只能通过
mmap、brk等系统调用向内核申请内存,最终的映射由内核决定。
- 虚拟地址到物理地址的转换是由
Linux中,如何查看一个端口的占用情况?(ss -lntp | grep 8080)kafka的组成
kafka如何实现高吞吐和低延迟- 顺序读写: 把消息追加写入日志,避免随机 IO,磁盘效率高
- 零拷贝: 减少用户态和内核态之间的数据拷贝,降低 CPU 开销
- 消息压缩: 减少网络传输的数据量,提高吞吐
- 分批发送:
Producer和Broker都支持batch,摊薄网络开销和请求开销
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 GYu的妙妙屋!
