自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(203)
  • 收藏
  • 关注

原创 【性能测试】BWSCocos - 应用性能测试报告

接上文,跑完性能测试之后,会生成一个文件:点开文件夹:第四个是测试结果图,最后一个是测试报告表格。

2025-03-31 11:45:06 467

原创 ZtestPerf使用说明(学习专用)

软件主界面可划分为测试控制区、场景区、截屏区、性能图表区、用户菜单区。本章将针对每个区域的功能使用进行详细说明。

2025-03-26 16:36:26 983

原创 【ADB】adb安装,超级无敌清晰的方法!!!

Windows版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zipMac版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zipLinux版本:https://dl.google.com/android/repository/platform-tools-latest-linux.zip2、配置环境变

2025-03-25 18:34:53 137

原创 Pytest为什么不能用__init__

示例代码分析:以下是一个简单的示例,演示了在 pytest 中使用 __init__ 方法导致的问题: 在这个示例中,TestClass 类定义了一个 __init__ 方法,用于初始化类实例的 x 属性。在 test_add 测试方法中,x 属性的值被增加了 5,并断言其值等于 15。然而,如果使用 pytest 运行该代码,则会抛出以下错误:原因分析: 该错误的原因是 pytest 无法正确识别 TestClass 类。因为当 pytest 实例化 TestClas

2025-03-24 16:12:44 753

原创 如何区分一个页面是不是h5页面

H5页面 是指基于 HTML5 技术标准开发的网页或移动端页面。这一概念最初来源于 HTML5(超文本标记语言第5版),它是现代网页开发的核心技术标准之一。但在实际应用中,尤其是在中国互联网行业,“H5页面”这一术语常被泛化,通常指代以下两类内容:1. 技术定义:基于HTML5标准的网页HTML5 是W3C语义化标签:如<header><nav><section><article>等,提升代码可读性和SEO优化。多媒体支持:原生支持<video><audio>

2025-02-17 17:58:17 1101

原创 以太网-知识点

先侦听信道是否空闲 → 空闲则发送数据 → 发送时持续检测冲突 → 若冲突则停止发送,随机等待后重试。以太网(Ethernet)是**局域网(LAN)**中最主流的通信技术标准,定义了。:基于 MAC 地址转发数据帧,分割冲突域,支持全双工通信。(早期):载波侦听多路访问/冲突检测(用于半双工模式)。确认 MAC 地址表(交换机)和 ARP 表(路由器)。前三字节为厂商标识(OUI),后三字节由厂商分配。(现代):交换机支持同时收发,无需冲突检测。每个网卡的唯一标识,6字节(48位),格式如。

2025-02-15 17:00:18 446

原创 交换机的工作原理

通过 Trunk 端口(标记 VLAN ID,如 IEEE 802.1Q 协议)实现 VLAN 扩展。:逻辑划分网络,隔离广播域(如将同一交换机的端口划分到不同 VLAN)。每个交换机端口是一个独立的冲突域,避免数据冲突(全双工模式下无冲突)。:若某 MAC 地址长时间未通信(默认 300 秒),则从表中删除。:将数据帧的源 MAC 地址与接收端口绑定,更新 MAC 地址表。:设备 A(MAC: AA)向设备 C(MAC: CC)发送数据。:目的 MAC 地址不在表中 → 广播到所有端口(除接收端口)。

2025-02-15 16:58:25 566

原创 adb基础知识及用法

ADB(Android Debug Bridge)是 Android 开发工具包(SDK)中的一个命令行工具,用于与 Android 设备进行通信和调试。它广泛应用于开发、测试和调试 Android 应用程序,同时也被用于设备管理、文件传输等场景。使用 USB 线连接设备,设备上会弹出授权提示,点击。部分命令需要 Root 权限,确保设备已 Root。安装、卸载应用,查看日志,调试应用。通过命令行访问设备的 Shell,执行 Linux 命令。查看设备日志(Logcat)。确保设备已启用 USB 调试。

2025-02-13 17:57:37 354

原创 贪心算法-看这一篇就够了!!

贪心算法是一种非常实用的算法设计策略,适合解决一些特定类型的优化问题。在使用贪心算法时,需要仔细分析问题的性质,确保局部最优解能够推导出全局最优解。

2025-02-11 13:57:00 242

原创 接口测试(小白专用)

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。所谓接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求。

2025-02-11 13:49:00 750

原创 如何定位bug是前端还是后端???

如页面上的数据没有正确传到request的参数中,或者response中的参数值没有正确显示到前端页面上。:如request的参数值没有正确存到数据库中,或者数据库中的数据没有正确存到response中的参数中。如果数据不正确,可能是后端处理逻辑的问题。6)如果前端发出了请求,参数正确,后端返回的数据也正确,但是界面显示不对,则是前端bug;4)如果前端发出了请求,参数正确,后端没有相应,没有数据,则是后端bug;5)如果前端发出了请求,参数正确,后端返回的数据不正确,则是后端bug;

2025-02-10 20:41:58 884

原创 乌班图如何换下载源

按下回车键,输入密码(密码不显示,输入完按回车键就行)按下快捷键 Ctrl+Alt+t 打开终端。遇到下面图情况取消就行。

2025-02-06 13:59:30 133

原创 大端存储与小端存储!!看这一篇就够了

地址编号小的是低地址,地址编号大的是高地址数据的低位放在低地址空间,数据的高位放在高地址空间小端就是低位对应低地址,高位对应高地址存放二进制数:1001-0100-1101-0110-1010-1100-0101-0100注意:我们在存放的时候是以一个存储单元为单位来存放,存储单元内部不需要再转变顺序啦!!就例如下面的低位0101-0100存放在0号地址,我们不需要把它变成0010-1010!!注意一定是从低地址读起!!!我们知道这是小端存储,所以在读出来的时候会从低位开始放!!!

2024-07-29 15:25:43 305

转载 车载以太网

除此以外,随着人们对汽车多媒体以及影音系统的需求越来越高,当前虽已有各式各样的音视频系统,可随着汽车电动化进程的加速推进,手机控制车辆以及彼此交互的场景不断扩大,可以想象未来联网需求只会不断拓展,无论是车内还是车外的联网需求都不约而同的提出了更多网络带宽的重要性。为此,车载以太网应运而生。特别地,如图中4所示,“VLAN Tag”字段可选,当没有VLAN Flag则为Basic MAC帧,当存在该字段时,则为VLAN MAC帧,即MAC帧可分为基本MAC帧(无VLAN)和标记MAC帧(包括VLAN)两种。

2024-07-12 16:32:21 144

原创 【Java】深度解读meditor和Negotiator

Mediator模式将交互逻辑集中在中介者对象中,而Negotiator模式将其协调逻辑放在协调员对象中。Mediator模式可以降低对象的耦合性,因为它把对象之间的交互集中在了一个对象中,相互之间没有直接的通信和依赖关系。使用Mediator模式可以简化系统的维护。在Mediator模式中,客户端组件将请求发送到中介者对象,然后中介者对象决定如何将请求路由到一个或多个处理程序组件。Negotiator模式的基本工作方式是将所有请求发送到协调员对象,然后协调员对象将请求路由到相应的命令处理程序对象。

2024-07-09 16:44:25 323

原创 【网络】拥塞控制

1.8.2.****什么是拥塞窗口?和发送窗口有什么关系呢?1.8.1.

2024-06-24 22:20:13 1058

原创 【网络】流量控制

1.7.1.***操作系统缓冲区与滑动窗口的关系是什么?发送方不能无脑的发数据给接收方,要考虑接收方处理能力。如果一直无脑的发数据给对方,但对方处理不过来,那么就会导致触发重发机制,从而导致网络流量的无端的浪费。为了解决这种现象发生,TCP 提供一种机制可以让「发送方」根据「接收方」的实际接收能力控制发送的数据量,这就是所谓的流量控制。下面举个栗子,为了简单起见,假设以下场景:●客户端是接收方,服务端是发送方●假设接收窗口和发送窗口相同,都为200●。

2024-06-24 22:14:37 1165

原创 【网络】滑动窗口

1.6.2.****窗口大小由哪一方决定?1.6.1.

2024-06-24 22:09:53 755

原创 【网络】重传机制

1.5.1.*****什么是超时重传?TCP 实现可靠传输的方式之一,是通过序列号与确认应答。在 TCP 中,当发送端的数据到达接收主机时,接收端主机会返回一个确认应答消息,表示已收到消息。但在错综复杂的网络,并不一定能如上图那么顺利能正常的数据传输,万一数据在传输过程中丢失了呢?所以 TCP 针对数据包丢失的情况,会用重传机制解决。接下来说说常见的重传机制:●超时重传●快速重传●SACK●D-SACK1.5.1.

2024-06-24 22:02:47 1106

原创 【网络】Socket编程

1.4.2.****listen参数backlog的意义?1.4.1.

2024-06-24 21:57:52 707

原创 【网络】TCP断开连接

客户端拔掉网线后,并不会直接影响 TCP 连接状态。所以,拔掉网线后,TCP 连接是否还会存在,关键要看拔掉网线之后,有没有进行数据传输。有数据传输的情况:●在客户端拔掉网线后,如果服务端发送了数据报文,那么在服务端重传次数没有达到最大值之前,客户端就插回了网线,那么双方原本的 TCP 连接还是能正常存在,就好像什么事情都没有发生。●在客户端拔掉网线后,如果服务端发送了数据报文,在客户端插回网线之前,服务端重传次数达到了最大值时,服务端就会断开 TCP 连接。

2024-06-24 21:52:48 2371

原创 【网络】TCP建立连接

1.2.4.***为什么每次建立TCP连接时,初始化的序列号都要求不一样呢?1.2.1.

2024-06-09 22:45:36 2447

原创 【网络】TCP的基本认识

我们可以在两个用户消息之间插入一个特殊的字符串,这样接收方在接收数据时,读到了这个特殊字符,就把认为已经读完一个完整的消息。HTTP 是一个非常好的例子。HTTP 通过设置回车符、换行符作为 HTTP 报文协议的边界。有一点要注意,这个作为边界点的特殊字符,如果刚好消息内容里有这个特殊字符,我们要对这个字符转义,避免被接收方当作消息的边界点而解析到无效的数据。拆包:读的时候只读了一部分。

2024-06-09 13:58:19 971 3

原创 【Linux系统编程复习】一些常见的问题7

在计算机中,设备驱动程序是一种计算机程序,它能够控制或者操作连接到计算机的特定设备。驱动程序提供了与硬件进行交互的软件接口,使操作系统和其他计算机程序能够访问特定设备,不用需要了解其硬件的具体构造。DMA的中文名称是直接内存访问,它意味着CPU授予IO模块权限在不涉及CPU的情况下读取或写入内存。也就是 DMA可以不需要CPU的参与。这个过程由称为DMA控制器(DMAC)的芯片管理。由于DMA设备可以直接在内存之间传输数据,而不是使用CPU作为中介,因此可以缓解总线上的拥塞。

2024-06-06 19:51:35 532

原创 【Linux系统编程复习】一些常见的问题6

8086的 CPU有20根地址总线,最大的寻址能力是1MB,而段基址所在的寄存器宽度只有16位,最大为你64 KB的寻址能力,64 KB显然不能满足1MB的最大寻址范围,所以就要把内存分段,每个段的最大寻址能力是64KB,但是仍旧不能达到最大1 MB的寻址能力,所以这时候就需要偏移地址的辅助,偏移地址也存入寄存器,同样为64 KB的寻址能力,这么一看还是不能满足1MB的寻址,所以CPU的设计者对地址单元动了手脚,将段基址左移4位,然后再和16位的段内偏移地址相加,就达到了1MB的寻址能力。

2024-06-06 19:43:41 723

原创 【Linux系统编程复习】一些常见的问题5

用户态和内核态是操作系统的两种运行状态。内核态:处于内核态的cPU可以访问任意的数据,包括外围设备,比如网卡、硬盘等,处于内核态的CPU可以从一个程序切换到另外—个程序,并且占用cPU 不会发生抢占情况,一般处于特权级·的状态我们称之为内核态。用户态:处于用户态的CPU只能受限的访问内存,并且不允许访问外围设备,用户态下的CPU不允许独占,也就是说cPU能够被其他程序获取。那么为什么要有用户态和内核态呢?

2024-06-04 20:51:27 889

原创 【Linux系统编程复习】一些常见的问题4

操作系统是管理硬件和软件的一种应用程序。操作系统是运行在计算机上最重要的一种软件,它管理计算机的资源和进程以及所有的硬件和软件。它为计算机硬件和软件提供了一种中间层,使应用软件和硬件进行分离,让我们无需关注硬件的实现,把关注点更多放在软件应用上。通常情况下,计算机上会运行着许多应用程序,它们都需要对内存和CPU进行交互,操作系统的目的就是为了保证这些访问和交互能够准确无误的进行。

2024-06-04 20:44:00 625

原创 【Linux系统编程复习】一些常见的问题3

字节序是对象在内存中存储的方式,大端即为最高有效位在前面,小端即为最低有效位在前面。判断大小端的方法:使用一个union数据结构I0过程包括两个阶段:o内核从l0设备读写数据和o进程从内核复制数据●阻塞:调用l0操作的时候,如果缓冲区空或者满了,调用的进程或者线程就会处于阻塞状态直到l0可用并完成数据拷贝。●非阻塞:调用I0操作的时候,内核会马上返回结果,如果I0不可用,会返回错误,这种方式下进程需要不断轮询直到l0可用为止,但是当进程从内核拷贝数据时是阻塞的。

2024-06-04 19:57:51 669

原创 【Linux系统编程复习】一些常见的问题2

当进程访问某个逻辑地址的时候,会去查看页表,如果页表中没有相应的物理地址,说明内存中没有这页的数据,发生缺页异常,这时候进程需要把数据从磁盘拷贝到物理内存中。通常一个进程会有4G的空间,但是物理内存并没有这么大,所以这些空间都是虚拟内存,它的地址都是逻辑地址,每次在访问的时候都需要映射成物理地址。将静态资源(图片,视频,js,css 等)单独保存到专门的静态资源服务器中,在客户端访问的时候从静态资源服务器中返回静态资源,从主服务器中返回应用数据。但是实际中更常见的是进程加线程的结合方式,并不是非此即彼的。

2024-06-04 19:51:47 761

原创 【C++】accumulate函数

accumulate是numeric库中的一个函数,主要用来对指定范围内元素求和,但也自行指定一些其他操作,如范围内所有元素相乘、相除等。函数共有四个参数,其中前三个为必须,第四个为非必需。若不指定第四个参数,则默认对范围内的元素进行累加操作。

2024-06-04 19:21:31 2682

原创 【Linux系统编程复习】一些常见的问题1

●先来先服务按照作业到达任务队列的顺序调度FCFS是非抢占式的,易于实现,效率不高,性能不好,有利于长作业(CPU繁忙性)而不利于短作业(I/0繁忙性)。●短作业优先每次从队列里选择预计时间最短的作业运行。SJF是非抢占式的,优先照顾短作业,具有很好的性能,降低平均等待时间,提高吞吐量。但是不利于长作业,长作业可能一直处于等待状态,出现饥饿现象;完全未考虑作业的优先紧迫程度,不能用于实时系统。

2024-06-02 17:32:32 701

原创 【C++】map和unordered_map的区别

1. 内存占有率的问题就转化成红黑树 VS hash表 , 还是unorder_map占用的内存要高。2. 但是unordered_map执行效率要比map高很多。3. 对于unordered_map或unordered_set容器,其遍历顺序与创建该容器时输入的顺序不一定相同,因为遍历是按照哈希表从前往后依次遍历的。

2024-05-30 18:34:48 271

原创 【C++】九大排序算法之----希尔排序

希尔排序不稳定,基本不怎么常用,因为它本身也用到了插入排序,很复杂,了解即可。

2024-05-30 10:42:39 236

原创 【C++】九大排序算法之----交换排序

其特点是将键值较大(或较小)的记录想序列的前端移动,将键值较小(或较大)的记录想序列的后端移动。这个就是实现一下两数交换。

2024-05-30 10:38:51 133

原创 【C++】九大排序算法之----归并排序

合并的步骤:先申请两数组合并后那么大小的空间,然后将两个排好序的数组逐一进行比较,往申请空间里面放。将两两有序的数组进行合并,将两个有序数组合并成一个有序数组。重复第二步,直至排序完成。通过递归将数组进行分解,当分解成单个元素为一组的时候才是组内有序的。思想:将两个有序的数组合并成一个有序的数组。求中位数:(R - L) / 2 + L。">"不可以省略,数组是奇数个的时候就用上了。归并排序:在递归回退的时候合并排序。时间复杂度:O(n*log(N))引用最大的特点:同一个地址。空间复杂度:O(N)

2024-05-30 10:37:34 221

原创 【C++】九大排序算法之----快速排序

时间复杂度:最差是有序的时候 O( n^2), O(nlog(n))空间复杂度:O(logN)稳定性:不稳定核心思想:选择一个基准元素,通常选择第一个元素或者最后一个元素;通过一趟排序讲待排序的记录分割成独立的两部分,其中一部分记录的元素值均比基准元素值小。另一部分记录的 元素值比基准值大;此时基准元素在其排好序后的正确位置;然后分别对这两部分记录用同样的方法继续进行排序,直到整个序列有序。三色旗问题有一个数组只由0,1,2三种元素构成的整数数组,请使用交换、原地排序而不。

2024-05-30 10:30:34 372

原创 【C++】九大排序算法之----堆排序

我们将待排序数组形象成一个堆结构,并将其调整为最大堆 (堆结构:左孩子的下标是2 *i+1,右孩子下标2 *i+2)下面演示将数组{20,30,90,40,70,110,60,10,100,50,80}转换为最大堆{110,100,90,40,80,20,60,10,30,50,70}的步骤。将堆顶元素与待排序数组(假设待排序的数据数量为nums)最后一个元素进行交换,swap(a[0], a[nums-1]);

2024-05-30 10:24:18 210

原创 【C++】九大排序算法之----桶排序(计数排序)

遍历原数组,找到最大值max,并且申请max+1个桶,初始化都为0(下标从0到max),即vector bucket(max+1,0);遍历桶数组,看对应的桶内计数为几就取出几个下标值,放到原数组,即 while(bucket[]--)a[index++] = i;遍历原数组,找到每个数值对应的桶号,并对桶计数++,即bucket[a[i]]++;原理:将数值作为桶号,遍历整个数组,将相应的桶进行计数。桶中的元素,是待排序数组中元素的个数。时间复杂度:O(n^2)空间复杂度:O(1)

2024-05-30 00:19:48 275

原创 【Python】面向对象

种程序设计思想,万物皆对象。

2024-05-29 23:59:49 498

原创 分盘后如何合并回原来的盘?

Windows内置了一款磁盘管理应用,能协助我们对硬盘分区进行管理。2. 在磁盘管理界面里,定位到你打算合并的分区,然后右键点击该分区。4. 删除后,对另一相邻分区进行右键操作,选择“”组合键,从弹出的选项中选择“5. 这样便完成了分区合并。3. 在出现的菜单里选取“

2024-05-29 16:03:23 935

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除