测试开发面经分享,面试七天速成 DAY2

在这里插入图片描述

1. TCP和UDP的区别

a. TCP是面向连接的协议,而UDP是无连接的协议。
b. TCP提供可靠的数据传输,保证数据的有序性和完整性,而UDP则不提供这些保证。
c. TCP使用流控制和拥塞控制机制,以确保数据的可靠传输,而UDP没有这些机制。
d. TCP较慢但稳定,适用于需要可靠传输的应用,如文件传输和网页浏览。而UDP较快但不稳定,适用于实时性要求较高的应用,如音视频传输和在线游戏。

2. TCP三次握手和四次挥手过程

  • 三次握手过程:
    a. 客户端发送一个SYN(同步)报文给服务器,请求建立连接。
    b. 服务器收到SYN报文后,回复一个SYN+ACK(同步+确认)报文给客户端,表示同意建立连接。
    c. 客户端收到SYN+ACK报文后,回复一个ACK(确认)报文给服务器,表示连接建立成功。
  • 四次挥手过程:
    a. 客户端发送一个FIN(结束)报文给服务器,请求关闭连接。
    b. 服务器收到FIN报文后,回复一个ACK报文给客户端,表示收到关闭请求。
    c. 服务器完成自己的数据传输后,发送一个FIN报文给客户端,请求关闭连接。
    d. 客户端收到FIN报文后,回复一个ACK报文给服务器,表示同意关闭连接。此时,连接关闭。

3. B树和B+树的区别

  • B树是一种平衡多路查找树,每个节点可以存储多个键和指针。B树的特点是所有叶子节点都在同一层级上,且节点的键值按升序排列。
  • B+树也是一种平衡多路查找树,与B树不同的是,B+树的非叶子节点只存储键,而不存储数据,所有数据都存储在叶子节点上。叶子节点使用链表连接,方便范围查询和顺序访问。
  • B树的非叶子节点存储键和指针,而B+树的非叶子节点只存储键,减少了非叶子节点的大小。
  • B树的叶子节点存储键和数据,而B+树的叶子节点只存储键和数据的指针,减少了磁盘I/O操作。
  • B树的范围查询需要在内部节点和叶子节点上进行,而B+树的范围查询只需要在叶子节点上进行。
  • B+树的叶子节点使用链表连接,方便范围查询和顺序访问。

4. 链表和数组的区别

a. 存储方式:

  • 数组是一种连续存储结构,它将元素在内存中按顺序依次存储,可以通过索引来访问元素。
  • 链表是一种离散存储结构,它使用节点来存储元素,每个节点包含数据和指向下一个节点的指针。

b. 动态性:

  • 数组的大小一旦确定,通常是固定的,无法动态地改变数组的长度。
  • 链表的长度可以动态地增加或减少,通过添加或删除节点来实现。

c. 插入和删除操作的效率:

  • 数组在插入和删除元素时,需要移动其他元素以保持连续存储的特性,可能需要进行大量的元素移动,时间复杂度为O(n)。
  • 链表在插入和删除元素时,只需要调整节点的指针,不需要移动其他元素,时间复杂度为O(1)。

d. 随机访问的效率:

  • 数组通过索引可以直接访问元素,时间复杂度为O(1)。
  • 链表需要从头节点开始遍历到目标位置才能访问元素,时间复杂度为O(n)。

e. 内存空间的使用:

  • 数组在创建时就需要分配一定的连续内存空间,无论实际使用的元素个数是多少,都会占用固定大小的内存。
  • 链表的内存空间是动态分配的,每个节点可以在需要时分配,可以更灵活地利用内存空间。

5. python、C语言、C++的区别

a. 语法和易用性:

  • Python的语法简洁、清晰,易于学习和理解。它使用缩进来表示代码块,没有大括号等特殊字符。
  • C语言和C++的语法较为复杂,需要注意语法规则和特殊字符的使用。C++是C语言的扩展,除了C语言的语法外,还引入了面向对象编程的特性。

b. 类型系统:

  • Python是一种动态类型语言,变量的类型可以在运行时自动推断,不需要显式声明。
  • C语言和C++是静态类型语言,变量的类型需要在编译时显式声明,类型检查在编译时进行。

c. 内存管理:

  • Python使用自动内存管理机制(垃圾回收),开发者不需要手动管理内存。Python的垃圾回收机制自动处理内存分配和释放。
  • C语言和C++需要手动管理内存,开发者需要显式地分配和释放内存,以避免内存泄漏和悬空指针等问题。

d. 应用场景:

  • Python适用于快速开发、脚本编写、数据分析和人工智能等领域。它具有丰富的第三方库和框架支持,提供了大量的工具和资源。
  • C语言和C++适用于系统级编程、嵌入式开发、游戏开发和性能要求较高的应用。它们具有更接近底层的控制能力,可以直接操作内存和硬件。

互联网大厂测开经历,目前担任测试开发负责人,每天分享互联网面经,如果你有测试相关的问题,欢迎咨询,海鲜市场【简历优化】、【就业指导】、【模拟/辅导面试】,已辅导20位以上同学拿到心仪offer

简历修改129/次
模拟面试180/小时
测试开发工具指导180/小时

在这里插入图片描述

  • 18
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值