- 博客(44)
- 收藏
- 关注
原创 adb使用命令记录
adb install -[ r/d/s] path(-r 覆盖/强制安装,-d 降级安装, -s 指定设备安装)adb connect IP地址。
2024-10-15 17:44:00
721
原创 课堂试验候选题
0.98,上下方向的半径为0.49,前后方向的半径为0.6,经线数为48,纬线数为24,使用正投影,裁剪窗口为(-1, -0.5)~(1, 0.5),程序窗。其中立方体的半径为1.5单位,并首先绕(0, 0, 0)~(1, 1, 0)旋转。(3)在屏幕窗口上部居中的1/4部分显示一个蓝色的填充正三角形,该正三角形的左下角顶点是(0, 0),右下角顶点是(1, 0);剪窗口均为(-0.1, -0.1)~(1.1, 1.1),程序窗口的大小为(200, 200),背景为黑色,标题为“多视口演示”。
2024-10-15 17:26:10
413
原创 WEBSERVER完整体系
①对于缺乏项目经验的C++新手,网上可找到的详细项目资料有限,多为简单的管理系统、五子棋游戏、工具库或WebServer等。②WebServer项目有助于整合面试所需的基础知识,如C/C++语言、操作系统(包括I/O调用和多路复用机制)、计算机网络(处理网络异常)和数据库(如注册中心数据库语句和负载均衡)。这样的项目可以让面试官围绕项目考察知识,简化面试准备(将⾯试的问题限制在⼀定的范围中)。③WebServer作为一个高性能网络框架,可以自由扩展功能,大多数WebServer以MIME服务为主。WebSe
2024-09-10 22:05:34
1651
原创 HNUST(王志喜)图形图像实验报告
程序窗口的大小为(200, 200),标题为“线框立方体”。其中球体的半径为 0.8,经线数为 24,纬线数为 12,并绕 轴旋转 30 度,程序窗口的大小为(200, 200),标题“为线框球”。随机生成一幅浮点数灰度图像(大小和亮度都是随机的,大小值位于区间[128, 639]),然后将该图像变换成亮度是0~1的浮点数图像,最后变换成字节图像并显示该图像。请使用OpenCV编写一个简单的程序,该程序首先读入一幅真彩色图像,然后将这幅彩色图像的3个通道分离出来,得到3幅灰度图像,最后显示这3幅灰度图像。
2024-01-16 00:14:59
2105
原创 HNUST(王志喜)图形图像编程复习题
其中椭球体的两极方向为上下方向,左右方向的半径为0.98,上下方向的半径为0.49,前后方向的半径为0.6,经线数为48,纬线数为24,使用正投影,裁剪窗口为(-1, -0.5)~(1, 0.5),程序窗口的大小为(400, 200),标题为“线框椭球”。其中球体的半径为0.8,经线数为24,纬线数为12,并绕x 轴旋转40 度,程序窗口的大小为(300, 300),标题为“线框球”。10.使用OpenCV编写一个程序,该程序对一幅灰度图像进行二值化变换,要求分别显示源图像和二值化以后的图像。
2024-01-07 15:35:37
1030
原创 C++后端操作系统面经(未完整,会一直更新)
位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈,直接操作栈则基本没有内核切换的开销,可以不加锁的访问全局变量,所以上下文的切换非常快。需要注意的是,在多线程编程中,需要注意线程安全性和共享资源的访问问题,以避免竞争条件和数据不一致的问题。
2023-10-08 19:00:08
190
原创 C++基础部分面经(未完整会一直更新)
值传递,指针传递,引用传递:值传递是函数实参拷贝给形参,函数参数都会被复制一份,函数对参数进行修改不会影响原来的值。浅拷贝是创建一个新的对象,该对象与原始对象有相同的数据,对于引用类型的成员变量,只负责了引用地址,没有复制实际的数据。深拷贝,浅拷贝和赋值:赋值是将一个对象赋值给另外一个新的变量时,赋的是该对象在栈中的地址,两个对象同时指向一个存储空间,是联动的,无论修改哪个对象都会影响另一个对象。隐藏是在派生类中重写基类中的函数,参数返回值可相同可不同,与重载不同的是不在同一个类中内,隐藏出现在派生类中。
2023-10-08 18:58:35
132
原创 C++后端基础知识部分 C++关键字
1、动态分配的对象调用delete时首先会调用析构函数,然后再释放内存,如果析构函数没有调用,那么说明该部分内存没有释放2、普通的int类型值没有析构函数,所以使用delete释放动态数组也不会出现内存泄漏3、对象类型释放内存前需要调用析构函数,使用delete处理一个动态数组只能析构首对象,其他的对象都无法被析构,这就导致了内存泄漏。综上所述,每个对象所占用的存储空间只是该对象的非静态数据成员的总和,其他都不占用存储空间,包括成员函数和静态数据成员。
2023-09-11 09:36:52
289
原创 Linux高性能服务器编程(10)
Linux下,一个进程给其他进程发送信号的API是kill函数。该函数把信号sig发送给目标进程;目标进程由pid参数指定,其可能的取值及含义如表pid参数含义pid > 0信号发送给PID为pid的进程pid = 0信号发送给本进程组内的其他进程pid = -1信号发送给除init进程外的所有进程,但发送者需要拥有对目标进程发送信号的权限pid < -1信号发送给组ID为-pid的进程组中的所有成员Linux定义的信号值都大于0,如果sig取值为0,则kill函数不发送任何信号。
2023-09-09 15:51:12
133
原创 Linux高性能服务器编程(9)
网络程序如下情况使用I/O复用技术:①客户端程序要同时处理多个socket②客户端程序要同时处理用户输入和网络连接③TCP服务器要同时处理监听socket和连接socket(这是IO复用使用最多的场合)④服务器要同时处理TCP请求和UDP请求。(比如回射服务器)⑤服务器要同时监听多个端口,或者处理多种服务。
2023-09-09 15:50:09
79
原创 Linux高性能服务器编程(11)
定时是指在一段时间之后触发某段代码的机制,我们可以在这段代码中依次处理所有到期的定时器。定时机制是定时器得以被处理的原动力。高效管理定时器的容器:时间轮和时间堆。Linux提供了三种定时方法:①socket选项SO_RCVTIMEO和SO_SNDTIMEO②SIGALRM信号③I/O复用系统调用的超时函数。
2023-09-04 17:22:09
128
原创 大数据期末考试选择填空重点内容HNUST(1-4章 7,10章多刷题)
(2)每个块都向HDFS集群中的名称节点发起写请求,名称节点会根据系统中各个数据节点的使用情况,选择一个数据节点列表返回给客户端,然后客户端就将数据首先写入列表中的第一数据节点,同时将列表传给第一个数据节点,当第一个数据节点接收到4KB数据时,写入本地,并且向列表中的第二个数据节点发起连接请求,将自己已经接收到的4KB数据和列表传给第二个数据节点,当第二个数据节点接收到4KB数据时,写入本地,并且向列表中的第三个数据节点发起连接请求,依次类推。(5)因各个数据节点位于不同的机器上,数据需要通过网络发送。
2023-06-25 17:45:45
5151
原创 大数据期末考试复习(1-4,7,10章)简答题HNUST
(2)每个块都向HDFS集群中的名称节点发起写请求,名称节点会根据系统中各个数据节点的使用情况,选择一个数据节点列表返回给客户端,然后客户端就将数据首先写入列表中的第一数据节点,同时将列表传给第一个数据节点,当第一个数据节点接收到4KB数据时,写入本地,并且向列表中的第二个数据节点发起连接请求,将自己已经接收到的4KB数据和列表传给第二个数据节点,当第二个数据节点接收到4KB数据时,写入本地,并且向列表中的第三个数据节点发起连接请求,依次类推。(5)因各个数据节点位于不同的机器上,数据需要通过网络发送。
2023-06-25 17:41:52
2523
3
原创 Linux高性能服务器编程(8)
服务器解构为三部分:I/O处理单元、逻辑单元、存储单元是服务器管理客户连接的模块。它通常要完成以下工作:等待并接收新的客户连接,接收客户数据,将服务器响应数据返回给客户端。对一个服务器机群来说,I/O处理单元是一个专门的接入服务器。它实现负载均衡,从所有逻辑服务器中选取负荷最小的一台来为新客户服务。一个一般是一个进程或线程。它分析并处理客户数据,然后将结果传输给I/O处理单元或者直接发送给客户端(具体使用那种方式取决于时间的处理模式)。对服务器机群而言,一个逻辑单元本身就是一台逻辑服务器。
2023-06-11 16:36:15
371
原创 Linux高性能服务器编程(7)高级I/O函数
在特定的条件下能表现出优秀的性能。这些函数大致分为三类:1.用于创建文件描述符的函数,包括pipe、dup/dup2函数;2.用于读写数据的函数,包括readv/writev、sendfile、mmap/munmap、splice和tee函数;3.用于控制I/O行为和属性的函数,包括fcntl函数。
2023-06-01 10:46:37
130
原创 Linux高性能服务器编程(6)socket基础
Linux网络编程基础APIsocket地址API。socket最开始的含义是一个IP地址和端口对(ip,port)。它唯一地表示了使用TCP通信地一端。socket基础API。socket地主要API都定义在sys/socket.h头文件中,包括创建socket、命名socket、监听socket、接收连接、发起连接、读写数据、获取地址信息、检测带外标记,以及读取和设置socket选项。网络信息API。
2023-05-29 14:20:21
360
原创 Linux高性能服务器编程(4)TCP协议详解
TCP协议更靠近应用层,在应用程序中有更好的可操作性。TCP模块开始发送数据时,发送缓冲区中这些等待发送的数据可能被封装成一个或多个TCP报文段发出。TCP模块发送出的TCP报文段的个数和应用程序执行的写操作次数之间没有固定的数量关系。当接收端收到多个报文段时,,TCP模块将它们携带的应用程序数据按照TCP报文段的序号依次放入TCP接受缓冲区中,并通知应用程序读取数据。接收端可以选择是否一次全读取,也可分多次读取,这取决于用户指定的应用程序缓冲区的大小。
2023-05-22 14:41:33
850
原创 Linux高性能服务器编程(5)HTTP协议详解
反向代理是指用代理服务器来接收Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从内部服务器上得到的结果返回给客户端。各大网站通常分区域设置了多个代理服务器,在不同的地方ping同一个域名可能获得不同的IP地址,这些IP地址实际上是代理服务器的IP地址。要求客户端自己设置代理服务器的地址。反向代理服务器和真正的Web服务器也位于同一个逻辑网络中,这通常由提供网站的公司来配置和管理。用户访问Internet的数据必然都经过网关,如果在网关是设置代理,则代理对用户来说显然是透明的。
2023-05-22 14:33:26
131
原创 Linux高性能服务器编程(3)IP协议详解
IP头部信息。IP头部信息出现在每个IP数据报中,用于指定IP通信的源端IP地址、目的端IP地址,指导IP分片和重组,以及指定部分通信行为。IP数据报的路由和转发。IP数据报的路由和转发发生在除目标机器之外的所有主机和路由器上。它们决定数据报是否应该转发以及如何转发。IP协议是TCP、IP协议族的动力,它为上层协议提供无状态、无连接、不可靠的服务。**(1)无状态(stateless)**是指IP通信双方不同步传输数据的状态信息,因此所有IP数据报的发送、传输和接收都是互相独立、没有上下文关系的。
2023-05-22 14:32:02
162
原创 Linux高性能服务器编程(2)
ARP协议可以实现网络层地址到任意物理地址的转换。工作原理:主机向自己所在的网络广播一个ARP请求,该请求包含目标机器的网络地址。此网络上的其他机器都将收到这个请求,但只有被请求的目标机器会回应一个ARP应答,其中包含自己的物理地址。硬件类型字段定义物理地址的类型,它的值为1表示MAC地址协议类型字段表示要映射的协议地址类型,它的值为0x800,表示IP地址硬件地址长度字段和协议地址长度字段,单位是字节。MAC地址长度为6;IPv4地址长度为4.
2023-05-22 14:28:10
86
原创 层序遍历包学包会C++
2.在队列不为空的情况下,定义一维数组用于存放当前层的遍历数据,定义size获取当前队列长度,利用循环遍历每一层的数据,将遍历的数据存入一维数组,将遍历的每个节点的子节点的值存入队列中,在当前层的节点的值遍历完成后将已经存入当前层数据的一维数组存入二维数组中,依次逐层遍历并将每一层的节点值数组存入二维数组中。2.对队列进行遍历,在队列不为空时,不断地遍历节点是否有子节点,每一次遍历节点都要将节点取出来防止重复,如果节点有子节点按左到右的顺序存入队列中,不断遍历直到队列为空,整棵树遍历完成。
2023-05-17 19:42:22
132
原创 STM32
第二步是保存在Q的值与位线BL的预充值相同,所以BL保持逻辑1,而Q与BL的预充值不同,使得BL经由M1与M5放电而变成逻辑0 (即Q的高电平使得晶体管M1通路)。通过对 GPIO 寄存器写入不同的参数,就可以改变 GPIO 的应用模式,再强调一下,要了解具体寄存器时一定要查阅《STM32F1xx 参考手册》中对应外设的寄存器说明。主存储块用于存储程序,我们写的程序一般存储在这里。此处的输出速度即 I/O 支持的高低电平状态最高切换频率,支持的频率越高,功耗越大,如果功耗要求不严格,把速度设置成最大即可。
2023-05-13 19:25:13
358
原创 嵌入式复习
①为了检测和解决由软件错误引起的故障,嵌入式处理器通常具有一种叫做看门狗的模块②这种模块一般是倒计数器,其作用是以一定的周期产生复位信号使系统复位,产生复位信号的时刻一般是倒计数到某个值(例如0)的时刻③在设计嵌入式系统软件时,通过在看门狗产生复位信号前执行喂狗操作(即让看门狗的倒计数值重新从某个设定的倒计数值开始)来避免看门狗倒计数到产生复位信号的值①μC/OS –II是一个实时操作系统内核,它包含任务调度,任务管理,时间管理。
2023-05-13 19:25:11
629
2
原创 常见排序算法
Rn-1)调整为新堆,然后再次将R[1]与无序区最后一个元素交换,得到新的无序区(R1,R2。2.重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。3.每趟排序,根据对应的增量 ti,将待排序列分割成若干长度为 m 的子序列,分别对各子表进行直接插入排序。归并排序采用经典的分治策略,分治法将问题分成一些小的问题然后递归解决,则治的阶段就是将分的阶段得到的答案修补在一起,即分而治之。2.统计数组中每个值为i的元素出现的次数,存入数组C的第i项。
2023-05-07 16:21:07
111
原创 剑指offer 07.重建二叉树
第三部分是右子树,从根节点(in_root+1)->中序遍历的末位置(inorder.size()-1)依据前序遍历可以找到根节点root就是前序遍历的首位置,依据根节点可以将中序遍历切割为三部分。前序右子树的根节点(pre_root+in_root-in_left+1)第一部分是根节点,根据前序根节点的值找到中序根节点(in_root)第二部分是左子树,从中序遍历的首位置->根节点(in_root-1)使用哈希表可以很快的依据前序的根节点找到中序的根节点的索引。前序左子树的根节点(pre_root+1)
2023-05-07 09:45:49
90
原创 HNUST软件测试复习重点
如果测试的目的是为了证明软件没有错误,人们就会在测试的时候,刻意选择一些易于通过的测试数据,不利于找出软件的问题。相反如果测试的目的是为了证明软件的错误,人们就会刻意的选择一些难以通过的测试的测试数据,这样的测试结果更有意义,对软件的提高有更大的帮助。安全性测试就是全面检验软件在需求规格说明规定的防止危险状态措施的有效性和在每一个危险状态下的反应,对软件设计中用于提高安全性的结构、算法、容错、冗余、中断处理等方案进行针对性测试,并对安全性关键的软件单元和软件部件单独进行加强的测试,以确定其满足安全性需求。
2023-05-06 21:02:51
1169
原创 HNUST湖科大软件测试方法与技术,朱少民,第三章习题第4题答案
输出X=-11,Y=10 P(1,3,4) F1,F2,T3,F4 4,6。输出X=-11,Y=10 F1,F2,T3,F4 X10,输出X=-11,Y=10 X
2023-05-06 20:53:44
3217
1
原创 HNUST湖科大软件测试技术与方法第三章课后习题第5题
(2)程序设计思路:第一次使用天平分别称5个球,判断一边有假球;拿出轻的五个球,拿出其中4个称,两边分别放2个球;如果两侧同重,则剩下的为假球;若两边不同重,拿出轻的两个球称第三次,轻的为假球。(1)程序要求:10个铅球中有一个假球(比其他铅球重量轻),用天平三次称出假球。针对下可能存在的程序结构设计测试用例。
2023-05-06 20:23:28
1505
原创 HNUST软件测试第三章课后习题第7题
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FGWrO1O2-1683373761750)(C:\Users\17259\AppData\Roaming\Typora\typora-user-images\image-20230506193412470.png)]年、月、日分别由Y、M和D存储相应的值,测试NextData(Y,M,D)函数,用判定表方法设计相应的测试用例。月份:M1 1,3,5,7,8,10,12月。3.年份后移,月份为1,日期为1。
2023-05-06 19:49:55
1561
湖南科技大学图形图像(王志喜)期末复习参考题往年必考题认真过一遍保底八十
2024-04-17
湖南科技大学图形图像实验报告(王志喜)完整版包含所有题目和答案还有代码
2024-04-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人