2023秋招大厂经典面试题及答案整理归纳(161-180)校招必看

本文汇总了2023年秋季招聘大厂面试中涉及的数据库(MySQL的myisam与innodb区别)、网络(OSI和TCP/IP协议栈、停止-等待协议ARQ)、操作系统(Paxos和Raft算法、进程调度策略)等关键知识点。内容涵盖了面试中常见的问题及其解答,是求职者复习准备的重要参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

161. MySQL 中 myisam 与 innodb 的区别。

162. 画出OSI和TCP/IP协议栈的对应关系.

163. 简述停止-等待协议(ARQ)的工作原理?

164. redis的持久化有哪几种方式?不同的持久化机制都有什么优缺点?

165. 如何理解Paxos算法?

166. 如何理解raft算法?

167. 如何理解一致性哈希算法?

168. voip都用了那些协议?

169. 阅读下面代码,回答问题?

170. IP Phone的原理是什么?

171. 1号信令和7号信令有什么区别,我国某前广泛使用的是那一种?

172. 请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?

173. 请问C++的类和C里面的struct有什么区别?

174. 8086是多少位的系统?在数据总线上是怎么实现的?

175. 请你详细的解释一下IP协议的定义,在哪个层上面,主 要有什么作用? TCP与UDP呢?

176. 全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的?

177. 操作系统中的进程调度策略有哪些?

178.将二叉树的两个孩子換位置,即左变右,右变左。(不能用递规)

179.网球中心共有100个网球场,每个单位可以来申请1到 100的场地,申请的场地编号必须是连续的,如果场地已经 被其他单位占用,就不能再次使用,而且单位在使用完场地 后必须归还。请设计一个完整的系统(c语言)。(限时5分 钟)

180.输入四个IP端,前两个为第一个IP段的起始和终止地址, 后两个是第二个IP段的起始和终止地址,判断这两个IP段 是否存在交集.


161. MySQL 中 myisam 与 innodb 的区别。


1、 存储结构
每个MvISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始, 扩展名指岀文件类型。
. frin文件存储表定义。
数据文件的扩展名为.MYD (MYDat a)
素引文件的扩展名是.MYI (MYIndex)。


2、 存储空间
MylSAJL可被压缩,存储空间较小。
InnoDB:需要更多的内存和存储,它会在主内存中建立其专用的缓冲池用于 高速缓冲数据和索引。
MvIS皿的索引和数据是分开的,并且索引是有压缩的,内存使用率就对应提 高了不少。能加载更多索引,而Innodb是索引和数据是紧密捆绑的,没有 使用压缩从而会造成Innodb比MylSAM体积庞大不小


3、 事务处理
类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不支 持外键、不提供事务支持。
InnoDB提供事务支持事务,外部键(foreign key)等高级数据库功能。 SELECT、UPDATE^ INSERT、Delete 操作
如果执行大量的SELECT, MylSAM是更好的选择。
如果你的数据执行大量的INSERT或UPDATE,岀于性能方面的考虑,应该使 用 InnoDB 表。
DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。而 则是重新建立表。在innodb上如果要清空保存有大量数据的表,最 好使用truncate table这个命令。
AUTO_INCREMENT
MvISAJL可以和其他字段一起建立联合索引。引擎的自动増长列必须是索引, 如果是组合索引,自动増长可以不是第一列,他可以根据前面几列进行排序 后递増。
InnoDB: InnoDB中必须包含只有该字段的索引。引擎的自动増长列必须是索 引,如果是组合索引也必须是组合索引的第一列。


4、 表的具体行数
MylSAJL保存有表的总行数,如果select count (*) from table;会直接取 岀该值。
InnoDB:没有保存表的总行数,如果使用select count (*) from table;就 会遍历整个表,消耗相当大,但是在加了 where后,myisain和innodb处理 的方式都一样。


5、 全文索引
Myl SAJ】'土持FULLTEXT类型的全文索引。不支持中文。
InnoDB:不支持FULLTEXT类型的全文索引,但是innodb可以使用sphinx 插件支持全文索引,并且效果更好。


6、 表锁差异
My I SAIL只支持表级锁,只支持表级锁用户在操作myisain表时,select, update, delete, insert语句都会给表自动加锁。
InnoDB:支持事务和行级锁,是innodb的最大特色。行锁大幅度提高了多 用户并发操作的新能。但是InnoDB的行锁也不是绝对的,如果在执行一个 SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如 update table set nuirnl where name like aaa%”



162. 画出OSI和TCP/IP协议栈的对应关系.


OSI/RM共分为七层,TCP/IP分为四层。TCP/IP中的网络接口层相当于0SI 的物理层和数据槌路层,TCP的应用层相当于0SI的应用层、表示层和会话 层。其余层次基本对应。见图,其中外围深颜色的是0SI层次,内部白颜色 的是TCP层次。



163. 简述停止-等待协议(ARQ)的工作原理?


全双工通信的双方既是发送方也是接收方。为了讨论方便,仅考虑A发送数 据而B接收数据并发送确认。A叫发送方,B叫接收方。“停止等待”就是 每发送完一个分组就停止发送,等特对方的确认。在收到确认后再发送下一 个分组。


1、 无差错情况
A发送分组Ml,发送完后就暂停发送,等待B的确认。B收到Ml后就向A发 送确认。A在收到对Ml的确认后,就继续发送下一个分组M2。同样,在收 到B对M2的确认后,再继续发送下一个分组。


2、 岀现差错
A只要超过一段时间后仍没有收到确认,就认为刚发送的分组丢失,因而重 侍前面发送过的分组。实现这个功能应该保证:
—、A在发送完一个分组后,必须暂时保留已发送的分组的副本。只有在收 到相应的确认后才能清除暂时保留的分组副本。
二、 分组和确认分组都必须进行编号。
三、 超时计时器设置的重传时间应当比数据在分组侍a输的平均往返时间更 长一些。


3、 源丢失和确认迟到
假设当B发送的对M2确认丢失后,A在设定的超时重传时间内没有收到M2 的确认,但并不知道是自己发送的分组岀错、丢失,或者B发送的确认丢失。 因此A在超时计时器到期后就要重传分组M2。B在收到M2后应釆取的两个 动作:
—、丢弃这个重复的分组M2。
二、向B发送确认。
这种可靠传输协议称为自动重传请求ARQ (Automatic Repeat reQuest), 可以在不可靠的传输网络上实现可靠的通信。



164. redis的持久化有哪几种方式?不同的持久化机制都有什么优缺点?


redis持久化的两种方式
RDB: RDB持久化机制,是对redis中的数据执行周期性的持久化。
AOF: AOF机制对每条写入命令作为日志,以append-only的模式写入一个 日志文件中,在redis重启的时候,可以通过回放AOF日志中的写入指令 来重新构建整个数据集。
通过RDB或AOF,都可以将redis内存中的数据给持久化到磁盘上面来, 然后可以将这些数据备份到别的地方去,比如说阿里云等云服务。
如果redis挂了,服务器上的内存和磁盘上的数据都丢了,可以从云服务 上拷贝回来之前的数据,放到指定的目录中,然后重新启动redis, redis就 会自动根据持久化数据文件中的数据,去恢复内存中的数据,继续对外提供 服务。
如果同时使用RDB和BOF两种持久化机制,那么在redis重启的时候, 会使用AOF来重新构建数据,因为BOF中的数据更加完整。


RDB优缺点
RDB会生成多个数据文件,每个数据文件都代表了某一个时刻中redis的数 据,这种多个数据文件的方式,非常适合做冷备,可以将这种完整的数据文 件发送到一些远程的安全存储上去,比如说Amazon的S3云服务上去,在 国内可以是阿里云的ODPS分布式存储上,以预定好的备份策略来定期备份 redis中的数据。
RDB对redis对外提供的读写服务,影响非常小,可以让redis保持高性 能,因为redis主进程只需要fork —个子进程,让子进程执行磁盘10操 作来进行RDB持久化即可。
相对于AOF持久化机制来说,直接基于RDB数据文件来重启和恢复redis 进程,更加快速。
如果想要在redis故障时,尽可能少的丢失数据,那么RDB没有AOF好。 —般来说,RDB数据快照文件,都是每隔5分钟,或者更长时间生成一次, 这个时候就得接受一旦redis进程宕机,那么会丟失最近5分钟的敬据。 RDB每次在fork子进程来执行RDB快照数据文件生成的时候,如果数据 文件特别大,可能会导致对客户端提供的服务暂停数毫秒,或者甚至数秒。 AOF优缺点
AOF可以更好的保护数据不丢失,一般AOF会每隔1秒,通过一个后台线 程执行一次fsync操作,最多丢失1秒钟的数据。
AOF日志文件以append-only模式写入,所以没有任何磁盘寻址的开销, 写入性能非常高,而且文件不容易仮损,即使文件尾部破损,也很容易修复。

A0F日志文件即使过大的时候,岀现后台重写操作,也不会影响客户端的读 写。因为在rewrite log的时候,会对其中的指导进行压缩,创建岀一份 需要恢复数据的最小日志岀来。再创建新日志文件的时候,老的日志文件还 是照常写入。当新的merge后的日志文件ready的时候,再交换新老日志 文件即可。
AOF日志文件的命令通过非常可读的方式进行记录,这个特性非常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值