【题目解析】第六届字节后端青训营结营小测试全解析

news2025/2/8 20:44:36

功夫秘籍

前言

👏 Hi! 我是 Yumuing,一个技术的敲钟人

👨‍💻 每天分享技术文章,永远做技术的朝拜者

📚 欢迎关注我的博客:Yumuing’s blog

由于官方答案没有出来,所以,这部分都是根据个人经验和网上收集所得到的第六届青训营结营全解析,如果存在错误,也请在评论区友好讨论,让我们一起把这篇文章变得更加完美。

文章目录

    • 前言
    • 答案汇总
    • 详细解析
    • 总结

答案汇总

先罗列一下答案,以 ABCD 作为选择题次序,自行比对,完整解析在后头。

序号答案
05B
06C
07D
08B
09B
10D
11B
12C
13A
14D
15C
16C
17B
18D
19D
20ABC
21ACD
22AD
23ABC
24ABC
25ACD
26ABC
27AD

详细解析

不保证全部正确,只凭个人经验和网上收集结果所总结出的完整解析答案,如有错误,还希望不吝赐教!感谢。

05 在网络字节序中,所谓"小端”(little endian)说法正确的是

  • 高字节数据存放在低地址处,低字节数据存放在高地址处
  • 低字节位数据存放在内存低地址处, 高字节位数据存放在内存高地址处
  • 和编译器相关
  • 上述答案都不正确

解析:

  • 大端字节序(big-endian):按内存的增长方向,低位数据存储于高位内存中,高位数据放低地址,这和我们的阅读习惯一致。
  • 小端字节序(little-endian):按内存的增长方向,低位数据存储于低位内存中,高位数据放高地址

网络字节序一般是大端序,主机字节序一般是小端序(比如intel CPU)

故本题选 B

06 机器A的ip地址为202.96.128.130,子网掩码为255.255.255.128,则该ip地址的网络号为

  • 202.0.0
  • 202.96.0
  • 202.96.128.128
  • 255.255.255

解析:

ip地址 和 子网掩码 进行 运算(与运算:两位同时为“1”,结果才为“1”,否则为0):

由于 255 的二进制 11111111 ,与二进制 A 进行与运算后结果为其本身,即 A,故,ip 段前三段不转换为二进制,其他部分切换成二进制,方便计算,结果如下:

  • ip地址 202.96.128.130: xxxxxxxx .xxxxxxxx.xxxxxxxx.1000 0010

  • 子网掩码 255.255.255.128 :11111111.11111111.11111111.1000 000 0

与运算之后等于: 202.96.128.128,根据子网掩码我们能知道,ip地址前25位是网络号,剩下的就是主机号

故本题选 C

07 下面的叙述中,()不是设备管理中引入缓冲机制的主要原因

  • 缓和CPU和I/O设备间的速度不匹配问题
  • 减少对CPU的中断频率和放宽对CPU响应时间的限制
  • 提高CPU和I/O设备间的并行性
  • 节省系统内存

解析:

缓冲技术是用在外部设备与其他硬件部件之间的一种数据暂存技术,它利用存储器件在外部设备中设置了数据的一个存储区域,称为缓冲区。缓冲技术一般有两种用途,一种是用在外部设备与外部设备之间的通信上的,还有一种是用在外部设备和处理器之间的。

  • CPU的速度远高于内存,当CPU直接从内存中存取数据时要等待一定时间周期,而Cache则可以保存CPU刚用过或循环使用的一部分数据,如果CPU需要再次使用该部分数据时可从Cache中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,因而提高了系统的效率。A 正确

  • 在远程通信系统中,如果从远地终端发来的数据仅用一位缓冲来接收,如下图(a)所示,则必须在每收到一位数据时便中断一次 CPU,这样,对于速率为 9.6 Kb/s 的数据通信来说,就意味着其中断 CPU的频率也为 9.6 Kb/s,即每 100 μs 就要中断 CPU 一次,而且 CPU 必须在 100 μs 内予以响应,否则缓冲区内的数据将被冲掉。倘若设置一个具有 8 位的缓冲(移位)寄存器,如下图(b)所示,则可使 CPU 被中断的频率降低为原来的 1/8;若再设置一个 8 位寄存器,如下图©所示,则又可把 CPU 对中断的响应时间放宽到 800 μs。故B 正确

    img

  • 缓冲的引入可显著地提高 CPU 和 I/O 设备间的并行操作程度,提高系统的吞吐量和设备的利用率。例如,在 CPU 和打印机之间设置了缓冲区后,便可使 CPU 与打印机并行工作。故 C 正确

  • 缓冲机制,简单讲就是通过空间换时间,故不可能节省系统内存。

故本题选 D

08 避免死锁的一个著名的算法是

  • 先入先出法
  • 银行家算法
  • 优秀级算法
  • 资源按序分配法

解析:

这个就毋庸置疑了。银行家算法:

在银行中,客户申请贷款的数量是有限的,每个客户在第一次申请贷款时要声明完成该项目所需的最大资金量,在满足所有贷款要求时,客户应及时归还。银行家在客户申请的贷款数量不超过自己拥有的最大值时,都应尽量满足客户的需要。在这样的描述中,银行家就好比操作系统,资金就是资源,客户就相当于要申请资源的进程。这种情况必须避免死锁的出现。

故本题选 B

09 原语的执行是屏蔽中断的

解析:

原语就是一种原子操作,故屏蔽中断操作

故本题选 B

10 关于无缓冲和有缓冲的channel,下面说法正确的是

  • 无缓冲的channel是默认的缓冲为1的channel
  • 无缓冲的channel和有缓冲的channel都是同步的
  • 无缓冲的channel和有缓冲的channel都是非同步的
  • 无缓冲的channel是同步的,而有缓冲的channel是非同步的

解析:

  • 无缓冲通道默认缓冲为 0
  • 无缓冲通道在没有接收方的时候,发送方会阻塞,故无缓冲的channel是同步的
  • 有缓冲通道在没有接收方的时候,如果缓冲区未满,则发送方并不会阻塞,故有缓冲的channel是非同步的

故本题选 D

11 小袁今天刚学会了defer延迟调用,他在草稿纸上编写了下面一段代码。请问下列代码的输出是

  • 123
  • 132
  • 312
  • 321

解析:

很简单的逻辑,自行理解吧,原题可运行代码如下:

package main

import (
  "fmt"
)

type S struct{}
func (s S) p(n int) S {
  fmt.Print(n)
  return s
}

func main() {
  var s S
  defer s.p(1).p(2)
  fmt.Print(3)
}

可自行测试,答案为 132,故本题选 B

12 关于函数声明,下面语法错误的是

  • func f(a, b int) (value int, err error)
  • func f(a int, b int) (value int, err error)
  • func f(a, b int) (value int, error)
  • func f(a int, b int) (int, int, error)

解析:

函数返回参数要么都有变量名,要么都用类型表示,选项C中返回参数一个有变量名,一个没变量名,不统一。故本题选 C。

13 Go语言中,以下选项正确的是

  • int 和 uint 的取值范围与体系架构有关
  • int 的取值范围是 [0, 4294967296)
  • uint 的取值范围是 [0, 4294967296)
  • int 的取值范围是 [-9223372036854775808, 9223372036854775807]

解析:

int 和 uint 的取值范围与体系架构有关,在 32 位机中等价于 int32 和 uint32,在 64 位机中等价于 int64 和 uint64。

故本题选 A

14 SQL语言允许使用通配符进行字符串匹配的操作,其中“%'可以表示

  • 零个字符
  • 一个字符
  • 多个字符
  • 其他三项都可以

解析:

% 可以表示任意个字符,可以是零个、一个、多个字符。

故本题选 D

15 关系型数据库创建表都有主键,以下对主键描述正确的是

  • 主键足唯一素引,唯一索引也是主键
  • 主键是一种特殊的唯一性索引,只可以是聚集索引
  • 主键是唯一、不为空值的列
  • 对于聚集索引来说,创律主键时,不会自动创建主键的聚集索引

解析:

  • 主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。 主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。
  • 唯一性索引列允许空值,而主键列不允许为空值。
  • 主键列在创建时,已经默认为空值 + 唯一索引,默认主键有聚集索引

故本题选 C

16 以下可以获取历史消息的是

  • topic 交换器
  • fanout 交换器
  • direct 交换器
  • 以上都不是

解析:

以上三个选项均为 RabbitMQ 交换器类型,fanout 和 topic 都是广播形式的,是没有历史数据的,也就是说对于中途创建的队列,获取不到之前的消息,而 direct 可以。

故本题选 C

17 某线性表中有100000个元素,其中前99990个元素递增有序,则采用()方法进行递增排序时关键字比较次数最少

  • 简单选择排序
  • 直接插入排序
  • 二路归并排序
  • 快速排序

解析:

img

根据题目中的“前99990个元素递增有序”,得出关键字比较次数最少的原理就是这99990个元素不参与比较或者移动等耗时操作。

根据以下对各种排序的思想分析,二路归并和快速排序没有利用大部分为递增序列而不参与比较或者移动的操作,简单排序的时间复杂度大于直接插入排序。

  • 简单选择排序思想为在当前待排序数列中选出最小值添加到有序序列中,其移动次数正序为0次,比较次数复杂度O(n****2)
  • 直接插入排序思想为整个排序过程为n-1趟,先将序列中的第一个当成有序子序列,然后从第二个开始逐个进行插入,直至整个序列有序,最好的情况下正序移动次数为0,比较次数为n-1,时间复杂度为O(n)
  • 二路归并排序初始序列含有n个记录则可以看成n个有序的子序列,每个子序列长度为1;两两合并,得到n/2个长度为2或1的有序子序列,再两两合并,……如此重复,直到得到一个长度为n的有序序列为止。归并时间复杂度O(nlog2n)
  • 快速排序选定一个基准值,通过一趟排序将待排分割成独立的两部分,前一部分均小于或等于基准值,后一部分大于基准值,然后对每个部分继续进行上述的重复操作,直到整个序列有序。最好的情况是基准值能够均衡分为两部分,最坏的就是只得到一个比上一次划分少一个记录的子序列O(n2)

故本题选 B

18 某个大型的网络游戏网站,现有几亿用户,为了实时获取前十名游戏分数最高的玩家,使用以下哪个排序算法比较合理?

  • 基数排序
  • 快速排序
  • 二叉排序
  • 堆排序

解析:

img

本题需要考虑两个方面的内容:

  • 两亿用户:空间
  • 实时获取:时间

快速排序只有在对整个空间排序完成后才能找出前10名,因而时间复杂度是 O(logN) ,不够快

时间上,基数排序会比堆排要快。但是基数排序需要更多的额外空间

堆排序,每次排序的结果就是找到当前堆中的最大/最小值。因此完成需求的时间复杂度为O(logN)。当我们需要找到常数级的最大/最小值时,往往堆排序是我们应该最先考虑的。

故本题选 D

19 题目描述中给出了四个排序相关的说法,让我们选择错误的是哪个,下面是每个说法的具体内容

  • 快速排序算法平均速度比插入排序快
  • 堆排序在每一趟排序过程中,都会有一个元素放置在最终位置上
  • 在 10000 个无序的元素中查找最大的 10 个元素,使用快速排序最快
  • 插入排序是一种稳定的排序算法

解析:

参考下图即可排除 A,可选 D

img

堆排序是依照二叉树的性质构成大顶堆或者小顶堆。arr[i]>=arr[2i+1]&&arr[i]>=arr[2i+2] 或者改成<=。例如大顶堆,整个序列的最大值就是堆顶根节点,将其与末尾元素交换,末尾就是最大值(确定了最终位置),然后剩余的元素继续建堆逐渐确定剩余元素的最终位置,排除 B

故本题选 D

20 下列有关进程的说法中,错误的是

  • 进程与程序是一一对应的
  • 进程与作业是一一对应的
  • 进程是静态的
  • 进程是动态的过程

解析:

进程和程序之间可以形成一对一,一对多,多对一,多对多的关系。 A错误,可选

执行一条命令或运行一个应用程序时一对一
进程在执行过程中可以加在执行不同的程序一对多
以不同的参数或数据多次执行同一个程序多对一
并发地执行不同的应用程序多对多

进程是具有一定独立功能的程序关于某个数据集合上的一次运行运动,进程和程序的区别在于程序是静态的,而进程是动态的。 C 错误,可选

故本题选 ABC

21 以下有关Http协议的描述中,正确的有

  • post请求一般用于修改服务器上的资源,对发送的消息数据量没有限制,通过表单方式提交
  • HTTP返回码302表示永久重定向,需要重新URI
  • 可以通过206返回码实现断点续传
  • HTTP1.1实现了持久连接和管线化操作以及主动通知功能,相比http1.0有大福性能提升

解析:

301永久重定向 302 临时重定向,排除 B

故本题选 ACD

22 关于协程,下面说法正确是

  • 协程和线程都可以实现程序的并发执行
  • 线程比协程更轻量级
  • 协程不存在死锁问题
  • 通过channel来进行协程间的通信

解析:

协程(Coroutine,又称微线程)是一种比线程更加轻量级的存在,排除 B

协程间任务分配是分发式而非抢占式,所以不存在线程安全方面的问题,但没有死锁方面的特殊保护机制,还是存在死锁问题。排除 C

故本题选 AD

23 关于接口,下面说法正确的有

  • 只要两个接口则有相同的方法列表(次序不同不要紧),那么它们就是等价的,可以相互赋值
  • 如果接口A的方法列表是接口B的方法列表的子集,那么接口B可以赋值给接口A
  • 接口查询是否成功,要在运行期才能够确定
  • 接口赋值是否可行,要在运行期才能够确定

解析:

只要两个接口拥有相同的方法列表(次序不同不要紧),那么它们就是等价的,可以相互赋值。

go里面没有引用传递,只有值传递,故可以直接接口赋值

Go语言接口是否可以赋值,是在编译期就确定的。接口的查询是在运行期确定。如:

在接口类型进行赋值操作时,若类型不匹配,则编辑器就会提示错误,因此接口赋值操作是在编译期确定的

故本题选 ABC

24 关于数据库索引,以下说法错误的是

  • 针对某些字段建立索引,能够有效的减少相关数据库表的磁盘空间占用;

  • 针对某些字段建立索引,能够有效的提升相关字段的读与写的效率;

  • 常见数据库管理系统,通常使用hash表来存储索引;

  • 数据库索引的存在,可能导致相关字段删除的效率降低;

解析:

  • 索引需要额外的磁盘空间,为一索引页,包含着索引记录,每条索引记录包含键值和逻辑指针。A 可选

  • 针对某些字段建立索引,如果读写性能都能提高,那每个字段都建立索引,岂不是万事大吉,当然,不可能啦。B 可选

  • 常见数据库管理系统,通常使用 B 树相关(B+、B*)来存储索引

  • 数据库索引的存在,可能导致相关字段删除的效率降低;其增加了动态维护的成本,效率降低。D 排除

故本题选 ABC

25 请描述http请求get和post的区别,下面描述正确的有

  • GET用于信息获取,而且应该是安全的和幂等的,POST表示可能修改变服务器上的资源的请求

  • POST比GET安全,因为采用了SSL加密

  • GET方式提交的数据最多只能是1024字节,理论上POST没有限制,可传较大量的数据

  • POST提交,把提交的数据放置在是HTTP包的包体中,GET提交的数据会在地址栏中显示出来

解析:

  • 安全的和幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。幂等的意味着对同一 URL 的多个请求应该返回同样的结果。完整的定义并不像看起来那样严格。换句话说, GET 请求一般不应产生副作用。从根本上讲,其目标是当用户打开一个链接时,她可以确信从自身的角度来看没有改变资源。
  • http没有采用加密技术,https采用了SSL加密
  • GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
  • 使用 Get 的时候,参数会显示在地址栏上,而 Post 不会,提交的数据放置在是HTTP包的包体中

故本题选 ACD

26 互联网接入系统内的负载均衡系统可以解决什么问题

  • 服务容灾
  • 健康检查
  • 横向扩容
  • 域名解析

解析:

本题答案较为不确定,自行判断。

  • 使用负载均衡时,您可以将负载均衡实例部署在支持多可用区的地域以实现同城容灾。通过该特性可实现当可用区机房发生故障时,负载均衡能在较短时间内,将前端访问流量切换到同一地域下的其它可用区,恢复服务能力。即服务容灾能力
  • 负载均衡器会定期向后端服务器发送请求以测试其运行状态,这些测试称为健康检查
  • 负载均衡系统可以根据业务发展需要,通过随时添加和移除ECS实例来扩展应用系统的服务能力,适用于各种Web服务器和应用服务器。即横向扩容能力。

域名解析是 DNS 服务器可以解决的问题。

故本题选 ABC

27 现有一数列(3,2.5.7.6.8),要求按升序排序,下面说法正确的是

  • 插入排序(从后向前)需要做6次比较

  • 快速排序,每次选择最后一个元素作为支点,需要比较5次

  • 快速排序,每次选择最后一个元素作为支点,需要比较9次

  • 快速排序,每次选择最后一个元素作为支点,需要比较12次

解析:

  • 直接插入排序,每次需要遍历一次数组,需要5+4+3+2+1=15次比较

  • 快速排序,选择最后一个元素为基,第一遍需要5次比较,第二趟对8的左侧进行快速排序,需要4次比较,结果使6,7交换,第三次在6的左侧快速排序,需要2次比较,第四次在5的左侧快排,需要1次比较,加起来5+4+2+1=12次

故本题选择 AD

总结

说实话,此次的结营测试并没有想象的那么困难,更像是大学里面的期中考内容,与实际的开发内容并没有相关,甚至内容都是基础,并非特别深入,需要久久思考的题目。本次全解析内容就是这样了,有什么问题,都可以指出了,欢迎大家友好讨论!

三连关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/640695.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

03.填充中断向量表IDT,使用中断

填充中断描述符表IDT&#xff0c;使用中断 通过初始化中断控制芯片&#xff0c;编码中断函数&#xff0c;实现BIOS中断 操作系统的中断是一种异步事件&#xff0c;用于通知 CPU 某个事件已经发生&#xff0c;例如硬件设备完成数据传输、发生错误或用户发起的系统调用。当操作系…

栈和队列(栈的应用)[二]

文章目录 栈的应用一、栈在系统中的应用简化路径(leetcode. 71) 二、扩号匹配问题有效的括号(leetcode. 20) 三、字符串去重删除字符串中的所有相邻重复项(leetcode. 1047) 四、逆波兰表达式问题逆波兰表达式求值(leetcode. 150) 总结 栈的应用 递归的实现是栈&#xff1a;每一…

使用腾讯手游助手作为开发测试模拟器的方案---以及部分问题的解决方案-1

目录 前言: 一.目录结构 二.注册表研究 1.HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Tencent\MobileGamePC 2.HKEY_CURRENT_USER\Software\Tencent\MobileGamePC 三.模拟器快捷启动 1.快捷启动命令: 2.启动命令如何放入桌面: 3.adb端口,目前测试均可以使用: 前言: 此…

PyTorch深度学习实战(3)——使用PyTorch构建神经网络

PyTorch深度学习实战&#xff08;3&#xff09;——使用PyTorch构建神经网络 0. 前言1. PyTorch 构建神经网络初体验1.1 使用 PyTorch 构建神经网络1.2 神经网络数据加载1.3 模型测试1.4 获取中间层的值 2. 使用 Sequential 类构建神经网络3. PyTorch 模型的保存和加载3.1 模型…

【框架源码】Spring源码解析之Bean生命周期流程

观看本文前&#xff0c;我们先思考一个问题&#xff0c;什么是Spring的bean的生命周期&#xff1f;这也是我们在面试的时候&#xff0c;面试官常问的一个问题。 在没有Spring之前&#xff0c;我们创建对象的时候&#xff0c;采用new的方式&#xff0c;当对象不在被使用的时候&…

【网络】UDP/TCP网络程序

目录 UDP网络程序 简单通信版本(UDP) 准备工作&#xff08;接口学习、分析&#xff09; 整体代码&#xff08;Server.hpp/Server.cpp/Client.hpp/Client.cpp&#xff09; 添加“婴儿版”业务逻辑 英译汉翻译 my_shell 聊天室 linux和windows通信 TCP网络程序 简单通…

AB32VG1:SDK_AB53XX_V061(3)IO口复用功能的补充资料

文章目录 1.IO口功能复用表格2.功能映射寄存器 FUNCTION03.功能映射寄存器 FUNCTION14.功能映射寄存器 FUNCTION2 AB5301A的官方数据手册很不完善&#xff0c;没有开放出来。我通过阅读源码补充了一些关于IO口功能复用寄存器的资料。 官方寄存器文档&#xff1a;《 AB32VG1_Re…

chatgpt赋能python:Python怎么截屏Windows

Python怎么截屏Windows Python是一种高级编程语言&#xff0c;具有快速开发、易于学习、可移植性强等优点&#xff0c;因此在实现Windows屏幕截图方面也是一种非常强大的工具。 什么是Windows屏幕截图&#xff1f; Windows屏幕截图是将当前屏幕或窗口的图像保存成文件或剪贴…

Android BlueToothBLE入门(二)——设备的连接和通讯(附Demo源码地址)

学更好的别人&#xff0c; 做更好的自己。 ——《微卡智享》 本文长度为7870字&#xff0c;预计阅读12分钟 前言 接《Android BlueToothBLE入门&#xff08;一&#xff09;——低功耗蓝牙介绍》上篇&#xff0c;这篇文章主要就是来做Demo实现Android两台设备的数据通讯。 实现效…

chatgpt赋能python:Python如何快速处理数据

Python如何快速处理数据 在当今数据爆炸的时代&#xff0c;数据处理已经成为一项非常重要的任务。因此&#xff0c;如何快速、高效地处理数据就成为了每个数据科学家、数据工程师以及数据分析师的必备技能之一。而Python正是其中的佼佼者。 为什么选择Python进行数据处理 Py…

Spring事物失效的八大场景

1.方法内的自调用&#xff1a;spring事物是基于aop的&#xff0c;只要使用代理对象调用某个方法时&#xff0c;spring事物才能生效&#xff0c;而在一个方法内使用this.xxx()时。this并不是代理对象&#xff0c;所以会失效&#xff08;实际上是transaction注解失效&#xff09;…

用程序控制对文本的复制和粘贴pyperclip模块

【小白从小学Python、C、Java】 【等级考试500强双证书考研】 【Python-数据分析】 用程序控制对文本的复制和粘贴 pyperclip模块 选择题 关于下列代码说法错误的是&#xff1f; import pyperclip print(【执行】pyperclip.copy("Python 太强大了&#xff01;")) p…

读发布!设计与部署稳定的分布式系统(第2版)笔记01_生产环境的生存法则

1. 系统“应该”做什么 1.1. 添加所需特性 2. 系统“不应该”做什么 2.1. 崩溃 2.2. 停止响应 2.3. 丢失数据 2.4. 侵犯隐私 2.5. 损失金钱 2.6. 摧毁公司 2.7. “杀死”客户 3. QA部门的测试 3.1. 团队的大部分工作是想方设法地通过测试 3.2. 做了敏捷、务实和自动…

【设计模式与范式:行为型】57 | 观察者模式(下):如何实现一个异步非阻塞的EventBus框架?

上一节课中&#xff0c;我们学习了观察者模式的原理、实现、应用场景&#xff0c;重点介绍了不同应用场景下&#xff0c;几种不同的实现方式&#xff0c;包括&#xff1a;同步阻塞、异步非阻塞、进程内、进程间的实现方式。 同步阻塞是最经典的实现方式&#xff0c;主要是为了…

GreenPlum分布式集群部署实战

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

GC演变过程、三色标记法、大白话讲解G1

文章目录 GC演变过程并发垃圾回收需要解决的问题怎么确定一个垃圾?并发收集存在的问题 三色标记法CMS垃圾收集器G1垃圾收集器介绍,主要特点优点使用注意点 GC演变过程 在Java中,垃圾收集一直是一个非常重要的组成部分, 到目前为止,垃圾收集器已经有十种了, 在不停的优化. 那为…

GoogleTest之Actions的用法

目录 返回值Actions的组合验证复杂参数mock副作用改变mock对象的行为设置返回类型的默认值使用自定义函数作为Actions 通用示例 namespace mock_action { class Foo { public:virtual ~Foo() {}virtual int& GetBar() 0; // 1virtual int GetPointerValue() 0; //…

Linux CentOS7虚拟机配置静态IP并允许上网的配置方法

文章目录 前言一、开启本地电脑VMnet8二、Linux配置静态IP1. NAT模式设置2. 开启虚拟机登录root用户3. 执行命令设置静态IP4. 重启网卡① 重启网卡 (正常)② 重启网卡 (异常)③ 解决方式&#xff1a;禁用NetworkManager 5. 查看ip6. 本地电脑cmd窗口ping虚拟机7. 虚拟机ping本地…

Golang每日一练(leetDay0095) 第一个错误的版本、完全平方数

目录 278. 第一个错误的版本 First Bad Version &#x1f31f; 279. 完全平方数 Perfect Squares &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日…

springboot的数据访问和数据视图

当使用 Spring Boot 进行数据访问时&#xff0c;我们可以选择使用 MyBatis 或 JPA&#xff08;Java Persistence API&#xff09;来实现增删改查操作。下面我将分别给出使用这两种方式整合数据访问的详细步骤和示例&#xff0c;同时结合 Thymeleaf 实现数据展现。 方式一: 使用…