自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 性能测试相关概念

一、性能测试概念:二、性能测试和功能测试1.不同:2.关系:三、性能测试分类1.基准测试2.负载测试3.稳定性测试4.压力测试5.并发测试四、性能测试的关键指一、基础性能指标二、资源利用率指标三、稳定性指标四、数据库专项指标

2025-04-17 09:30:00 776

原创 自动化测试

一、概念:通过自动化测试有效的减少人力的消耗的同时也提高了测试的质量和效率。(人工测试结果是不可控的,机器测试结果是可控的)。测试人员编写自动化测试脚本。增加新的功能:测试人员需要同步增加对应的自动化脚本。自动化测试报错:测试人员需要维护并解决自动化脚本问题。自动化的主要目的是用来回归测试。

2025-04-16 09:30:00 1532

原创 软件测试用例

软件中涉及到特性很多,通过编写测试用例,可以想到测试哪些内容。通过一次又一次的更新修改将测试用例完成,功能覆盖更高即可。1)常规思考+逆向思维+发散性思维2)万能公式:功能测试+界面测试+性能测试+易用性测试+兼容性测试+安全测试

2025-04-15 09:30:00 995

原创 软件测试Bug相关

一、概念:1)当且仅当规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误。2)当需求规格说明书没有提到的功能,判断标准以最终用户为准:当程序没有实现其最终用户的功能要求时,就是软件错误。

2025-04-14 09:30:00 1808

原创 软件测试分类

在受控环境下由开发团队或内部用户(如QA、产品经理)进行的早期测试,通常在开发末期或预发布阶段执行。

2025-04-13 09:30:00 755

原创 测试用例设计方法

测试用例设计方法,一、基于需求的设计方法二、具体的设计方法1、等价类2.边界值3.场景法4.正交法5.判定表法6.错误猜测法

2025-04-12 09:30:00 639

原创 TCP流套接字编程②

客户端发送的数据确实发了,服务器也收到了,只不过数据在服务器的接收缓冲区。一旦第一个客户端退出了,回到第一层循环,继续执行第二次accept,继续执行next就能把之前缓冲区的内容给读出来。如果第一个客户端退出了,第二个客户端之前发的请求啥的就立即被处理,没被丢掉。但是存在问题,如果发送的数据很少,由于缓冲区还没满,数据就呆在缓冲区里。,服务器这边的代码能感知到,对应的Scanner能够在hasNext中返回false。针对这个连接再进行一次循环,客户端请求到了之后,scanner.hasNext返回,

2025-04-11 09:30:00 989

原创 TCP流套接字编程

1.Server Socket 该类是创建TCP服务器Socket的API => 这是Socket类,对应到网卡,但是只给服务器使用2.Socket 该类是客户端Socket,或服务器接收到客户端建立连接(accept方法)的请求后,返回的服务器Socket。 => 对应到网卡,既可以给服务器使用,又可以给客户端使用。

2025-04-10 09:30:00 974

原创 UDP socket②

UDP总结:1.api的使用 DatagramSocket send、receive DatagramPacket 构造方法2.服务器、客户端基本流程服务器:主循环(处理若干个请求)客户端:主循环:从用户这里读取多组输入,通过send把请求发给服务器。服务器:读取请求并解析,receive读取数据,把读到的数据构造成String。根据请求构造响应,具体业务逻辑的体现。把响应返回给客户端,send要给发送的数据报中设置ip和端口客户端:通过receive把服务器返回的响应读取出来,把数据显示到界面上

2025-04-09 09:15:00 980

原创 UDP socket

上述代码中,可以看到UDP是无连接的通信。UDP socket自身不保存对端的IP和端口,而是在每个数据报中有一个。另外代码也没有“建立连接”“接受连接”操作。面向数据报:send和receive都是通过Datagram Packet为单位全双工:一个socket既可以发送也可以接收。

2025-04-08 09:30:00 2534

原创 HTTP请求-请求行

请求行(方法,URL,版本号)

2025-04-07 09:22:23 848

原创 HTTP请求-请求头

浏览器的容错能力很强的程序,即使返回的数据有问题,也能尽可能正确的显示出来。,HTTP底层也是基于TCP,连续传输多个HTTP数据报,此时接收方这边的接收缓冲区里就会积累多个包的数据,应用程序在读取这些数据的时候就需要明确包之间的边界。如果有body,空行就不是结束标记了,从空行开始读body,body要读多长就取决于Content-Length,读完之后,这个包就结束了。URL上已经有HOST了,这里的Host和URL中的ip地址和端口,绝大多数情况下是一样的,少数情况可能不同。

2025-04-06 09:30:00 752

原创 网络编程(跨主机通信)

传输层主要涉及的协议是TCP/UDPTCP:有连接,可靠传输,面向字节流,全双工UDP:无连接,不可靠传输,面向数据报,全双工

2025-04-05 09:30:00 767

原创 HTTP协议

HTTP 3.0基于UDP实现了一系列的更复杂的机制,可以确保可靠性,也不怕大数据包。TCP/UDP这样的协议,具体是那个模式,取决于代码实现,完全可以实现出其他的效果。HTML还会依赖其他的css和js,图片等,HTML被浏览器加载后,有会触发一些其。用来fq的代理,本质上是通过一个可以被访问的境外服务器,部署代理服务器的。,往往是访问一个网站的入口请求,选中这个请求并双击,此时就能看到明细。(一般是压缩响应,请求不太需要)压缩和解压过程是消耗时间和cpu的,网络传输中,带宽是一个比较贵的硬件资源,

2025-04-04 09:30:00 1369

原创 软件测试基础概念2

软件测试的流程:1. 需求分析2. 测试计划3. 测试设计4. 测试环境搭建5. 测试执行6. 测试报告与总结7.上线8. 运行与维护,实际工作中,上线也分为多个步骤:沙盒,小流量,全流量,全线上。

2025-04-03 09:15:00 874

原创 软件测试基础概念

3)迭代计划会议:项目团队对每一个story进行任务分解,标准为完成该story的所有任务,每个任务都有明确的负责人,并完成工时的初估计。5)演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果,po整理反馈,形成新的story。项目组(产品经理,前端开发,后端开发,测试,交互,设计)均为产品质量负责。输出测试用例,测试设计与计划,测试报告等文档。6)回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,以达到持续改进的结果。

2025-04-02 09:15:00 1152

原创 HTTPS

上述讨论的过程,所谓的安全也不是绝对的安全,上述的安全本质是基于非对称加密体系。但是非对称加密体系也不是无懈可击的,只不过破解这样的加密体系,需要的计算量是很大的,超出了现有计算机的算力上限。后续的通信,服务器和客户端之间,仍然会使用key作为加密的密钥,此时后续传输的各种数据就都可以被黑客解密了。返回证书时,证书数据也经过了黑客设备,但是黑客不能修改证书的公钥为自己的公钥,客户端拿到证书后,会针对。的,黑客申请的证书的域名和服务器的域名肯定不一样,客户端拿到证书后,发现域名不同,直接就知道证书时假的了。

2025-04-01 09:15:00 1372

原创 Java虚拟机③

3.垃圾回收机制(GC)C语言中动态内存管理,malloc申请内存,free释放内存。此处申请到的内存,,这点对于服务器程序不太友好。服务器每个申请去malloc一块内存,。=>实际开发中,很容易出现free不小心忘记调用,或因为一些情况没有执行到。例如:函数中间if return /抛出异常了。Java就属于早期就引入了这样的语言。引入这样的机制之后,就不需要手动来释放了,,某个内存是否会继续使用;。

2025-03-31 09:15:00 769

原创 Java虚拟机②

​​​​JVM的类加载机制:1.加载2.验证3.准备4.解析5.初始化。双亲委派模型(加载环节)描述了如何查找.class文件的策略。   上述设定的最主要的目标就是为了确保这几个类加载器之间的优先级按照上述的顺序,假定在代码中自己定义一个java.lang.String这样的类,最终程度的执行结果,自定义的类不会被JVM加载。

2025-03-30 09:15:00 881

原创 Java虚拟机

JDK包含JRE和开发工具。JRE包含JVM和运行 Java 程序所需的库。JVM是运行 Java 字节码的虚拟机。

2025-03-29 09:15:00 1022

原创 TCP的特性⑤

粘包问题” => 包指的是“tcp传输的数据到了接收方之后,接收方要根据socket api来read出来,read出来的结果就是应用层数据包(由于整个read过程非常灵活,可能会使代码中无法区分出来当前的数据是此处假定,这三个tcp数据报都是(其实一个tcp数据报也可以接收缓冲区应用程序调用read读取数据,由于此处是字节流的,非常灵活。。读出数据之后,就需要把这里的数据转成应用层数据包(应用层要做的事情),然后这个数据才能被正确的使用。解决方法的关键 =>1.通过。

2025-03-28 09:15:00 1862

原创 TCP的特性④

刚开始传输的数据,速率是比较小的,采用的拥塞窗口也就比较小,此时,网络的拥堵情况未知,如果一上来就采用很大的拥塞窗口,可能让本就不富裕的网络带宽更难。这里引入了一个“阈值”,当拥塞窗口达到了阈值之后,指数增长就成了线性增长。如果上述传输的数据没有出现丢包,说明网络还是畅通的,要增大窗口大小,此时,增大方式就是按照指数来增长(*2)如果立即返回ack,此时接收缓冲区的大小相对较小的(典型场景:发送发不停的发,接收方不停的取)。线性增长也是一直在增长的,积累一段时间后,传输的速率可能太快了,此时就会引起丢包。

2025-03-27 09:15:00 1964

原创 TCP的特性③

确认应答机制下,每次发送方收到一个ack才会发下一个,导致大量的时间浪费在等待ack上了。此处等待消耗的时间成本是非常多了。希望保证可靠传输的前提下,能够让效率尽量高点,让消耗的时间成本尽可能少点。滑动窗口可以在保证可靠传输的基础上,提高效率(降低损失,不是增加速度)

2025-03-26 09:15:00 1544

原创 TCP的特性②

(建立连接,断开连接)

2025-03-25 09:15:00 777

原创 TCP的特性①

TCP的确认应答是确保TCP可靠性的最核心机制。超时重传是确认应答的补充。超时是会重传的,重传也不是无限的重传(有一定的策略)1.重传次数是有上限的,重传到一定程度,还有ack,就尝试重置连接,如失败,则放弃连接。2.重传的超时时间阈值也不是固定不变的,随着重传次数的增多而增大(重传频率越来越低)随着重传的次数的增加,包到达对方的概率也会大大增加。

2025-03-24 09:15:00 820

原创 封装和分用

A给B发消息。   应用程序从文本输入框获取到用户输入的hello,把这个字符串构造成一个应用层的数据包。传输层涉及到的协议:最重要的是TCP和UDP。网络层涉及到最核心的协议:IP协议。数据链路层涉及到最核心的协议:以太网(“以太”:表现网络数据传输的介质)

2025-03-23 09:15:00 383

原创 网络原理①

每个程序在进行网络通信过程中,都需要有一个端口(可能是用户手动指定的,也可能是系统自动分配的)用于在局域网(LAN)内连接多台设备(如计算机、打印机、服务器等)。用于连接不同的网络(如LAN和WAN),并在网络之间转发数据包。根据MAC地址(硬件地址)转发数据帧,实现设备之间的高效通信。根据IP地址(逻辑地址)决定数据包的传输路径,实现跨网络通信。同一个主机上,程序使用的端口不能冲突(端口号也是一个整数)注:进行一次通信的过程中,涉及到IP和端口各有两个。网络通信过程中,需要涉及到的细节是非常多的。

2025-03-22 09:15:00 897

原创 数据库中的锁机制

     数据库中的 锁机制 是用于管理并发访问的重要工具,确保多个事务同时操作数据时,数据的一致性和完整性得以维护。锁机制通过限制对数据的访问,防止并发事务之间的冲突。

2025-03-21 09:00:00 1084

原创 数据库中的事务相关概念

在数据库中,(Transaction)是指一系列操作组成的逻辑单元,这些操作要么全部成功执行,要么全部不执行,以确保。事务是数据库管理系统(DBMS)中非常重要的概念,主要用于,保证数据的正确性。

2025-03-20 09:00:00 1122

原创 文件 IO

文件”是一个广义的概念。①硬盘上的②硬盘上的(文件夹)很多的硬件设备,也是被操作系统抽象成文件,如:键盘,显示器,网卡。fprintf fscanf -> 针对文件来输入输出。fprintf(STDOUT,"hello")=> 这个代码也可以在屏幕上显示,效果等同于printf顺序读写:有一个很大的文件,要把文件整体复制一下 =>随机读写:某个目录中,有很多(每个文件都很小,文件数目特别多)要把整个目录都拷贝一下。=>=> 软件的特性受限于硬件设备,硬件设备的特征受限于物理学原理。

2025-03-19 09:00:00 1036

原创 CAS(compare and swap)

严格来说,和Java无关。包括jvm中关于cas的api,都放在unsafe包里。一个特殊的cpu指令,完成的工作是“比较和交换”。比较address内存地址中的值,是否和expected寄存器中的值相同。如果相同,就把swap寄存器的值和address内存中的值进行交换,返回true。如果不相同,则无事发生,返回false。

2025-03-18 09:00:00 1759

原创 锁的策略)

一、锁的分类第一组:乐观锁和悲观锁第二组:轻量级锁和重量级锁第三组:自旋锁和挂起等待锁第四组:普通互斥锁和读写锁第五组:公平锁和非公平锁第六组:可重入锁和不可重入锁 。synchronized背后涉及到很多“优化手段”1.锁升级偏向锁 => 轻量级锁 => 重量级锁2.锁消除自动消除不必要的锁3.锁粗化把多个细粒度锁合并成一个粗粒度锁,减少锁竞争开销

2025-03-17 09:00:00 916

原创 多线程案例③

池:1)提前把要用的对象准备好 2)用完的对象不要立即释放,先留着以备不时之需可以解决并发编程,为了避免频繁的创建销毁进程,引入了。如果创建销毁线程的频率进一步提高 =>

2025-03-16 09:15:00 857

原创 多线程案例②

定时器。1. MyTimerTask 类MyTimerTask 类表示一个定时任务,它包含以下内容:2. MyTimer 类 MyTimer 类是一个定时器,它负责管理任务的调度和执行

2025-03-15 09:00:00 797

原创 多线程案例

单例模式(一种设计模式)单个实例/对象 => 某个类,在一个进程中,只创建出一个实例。“饿汉模式”, “懒汉模式”:创建实例的时机更晚,只有第一次使用的时候才会创建实例。指令重排序引起的线程问题 。阻塞队列1.引入生产者消费者模型,可以更好地做到“解耦合”(把代码的耦合程度,从高降低)代价:需要加机器引入更多的硬件资源。优点:1.解耦合        2.削峰填谷(三峡大坝)所谓的峰,谷不是长时间持续的,是短时间出现的,生产者消费者模型 => 最核心的部分是阻塞队列,使用synchronized和wait

2025-03-14 09:30:00 1824

原创 多线程核心语法③

死锁(程序中最严重的一类bug),4.解决死锁问题,内存可见性,线程的等待通知(wait和notify),wait和notify是通过Object对象联系起来的,wait && sleep && join

2025-03-13 09:30:00 1888

原创 多线程核心语法②

获取线程引用Thread.currentThread(),线程休眠 sleep(),线程状态 getState(),线程安全问题,线程不安全的原因,随机调度,抢占式执行,加锁,锁具有“互斥”,“排他”性。如果synchronized加到static方法上 <=>给类对象加锁

2025-03-12 10:00:00 734

原创 多线程基本语法①

多线程基本语法创建线程的方式,Thread其他常见的属性和方法,启动线程:start(),终止线程:interrupt(),等待线程(结束):join()

2025-03-11 15:00:00 846

原创 进程与线程

效率更高(频繁创建销毁时)尤其时对于Java进程,是需要启动Java虚拟机的,启动java虚拟机开销大,创建多个Java进程,就是多个java虚拟机。3.每个线程也是一个独立的执行流,可以执行一些代码,并参与到CPU调度中(状态,优先级,记账信息,上下文,每个线程一份)状态,优先级,记账信息,上下文,每个线程一份),把能够资源共享的线程分成组=>线程组。1.进程是包含线程的,进程是资源分配的最小单位,线程是调度执行的最小单位。2.每个进程有自己的资源,进程中的线程共用该资源(内存指针,文件描述符表)

2025-03-11 09:15:00 900

原创 PCB的一些核心特性

PCB(Process Control Block,进程控制块)是操作系统中用于的关键数据结构。

2025-03-10 15:19:52 330

空空如也

空空如也

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

TA关注的人

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