自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HTTP协议及HTTPS

主流使用HTTP/1.1,该版本传输层使用TCP协议http主要使用的应用场景是网站,浏览器和服务器之间的交互客户端(pc,手机)和服务器之间的数据传输也很可能是httphttp的交互过程非常典型的一问一答。

2024-11-18 17:34:09 1536 1

原创 网络原理-网络层和数据链路层

地址管理:使用一套地址体系来描述所没备的位置路由选择:一个数据包如何从网络的某个地址传到另一个地址。

2024-11-15 17:30:04 904

原创 网络原理-传输层

UDP 数据报 = 报头 + 载荷UDP报头一共有4个字段,每个字段两个字节(源端口,目的端口,数据报长度,校验和)用2个字节表示端号,其取值范围为0~655351-1024都是系统自用的端口(知名端口号)一个 udp 数据报的最大长度是64KB校验和/检验和判断数据在传输过程中是否正确使CRC算法来完成校验UDP数据报发送方在发送之前先计算一遍CRC,再把算好的CRC放到UDP数据报中。

2024-11-14 12:31:19 2024

原创 网络原理-应用层

虽然有很多现有的协议,但是更多的是要根据实际场景自定义协议1、服务器和客户端之间要交互哪些信息2、数据的具体格式客户端按照上述约定发送请求,服务器按上述约定来解析请求服务器按照上述约定构造响应,客户端按上述约定来解析响应上述数据按照一定的固定套路来组织往往是客户端的和服务器的共同把事情敲定下来(达成共识即可)客户端和服务器往往要进行交互的是结构化数据网络传输的其实是字符串和二进制bit流约定协议的过程就是把结构化数据转为字符串和二进制bit流的过程。

2024-11-13 08:00:00 285

原创 计算机网络-网络编程

学习传输层给应用层提供的api,可以写代码把数据交给传输层,进一步通过层层封装就可以把数据通过网卡发送出去了网络中主动发起请求的一方被称为客户端,被动接收的一方被称为服务器客户端和服务器之间的交互有很多模式1、一问一答:一个请应对应一个响应,最常见,网站开发就是这种一问一答2、一问多答:一个请求对应多个响应,主要涉及到下载3、多问一答:多个请求对应一个响应,主要涉及到上传4、多问多答:多个请求对应多个响应,主要涉及远程控制网络编程使用系统提供的api本质是传输层提供的(TCP,UDP)

2024-11-11 20:09:30 953 1

原创 计算机网络-网络原理初识

局域网内的主机能方便的通信,又称内网,局域网和局域网之间未连接的情况下无法通信常见组建局域网的方式是通过路由器或交换机交换机:上面的口都是等价的,连上的电脑就构成了局域网路由器:上面的口分为两种 ,WAN 口和 LAN 口要构成局域网的电脑都连到LAN口上,WAN口连运营商给的网线路由器下面的LAN口还可以继续连接交换机可以认为交换机能够对路由器现有端口进行扩展,且交换机还再接交换机,基于上述网络结构,就可以构成一个非常庞大的网络结构。

2024-11-07 17:45:00 803

原创 操作系统-文件IO

对计算机来说,文件是一个广义的概念硬盘上的文件,硬盘上的目录(文件夹)很多硬件设备也被操作系统抽象成文件对机械硬盘来说更擅长顺序读写,不擅长随机读写有一个很大的文件,要把这个文件整体复制一下(顺序读写)某个目录中有很多小文件,文件很小数目很多,把目录拷贝一下(随机读写)小文件过多,在硬盘上的存储位置并不连续,而是离散的,可能出现在各个位置代码不涉及硬盘的结构细节,操作系统已经封装好了。

2024-11-06 08:00:00 1086

原创 操作系统—多线程

乐观锁:在加锁之前,预估当前锁冲突出现的机率不大,在进行加锁的时候就不会做太多工作悲观锁:在加锁之前,预估当前锁冲突出现的机率较大,在进行加锁的时候就会做更多工作会他文更多工作乐观锁加锁的过程中,做的事比较少,加锁的速度更快,但是更容易引发一些其他问题悲观锁加锁的过程中做的事更多,加锁的速度更慢,但不容易出现其他问题。

2024-11-04 08:00:00 858

原创 操作系统-多线程案例

设计模式有很多种,不同的语法中也有不同的设计模式单例 = 单个实例(对象)某个类,在一个进程中,只应该创建出一个实例,(原则上不该有多个)使用单例模式可以对咱们的代码进行个更严格的校验和检查实现单例模式有多种实现方法,有两种最基础的实现方式。

2024-11-01 21:23:31 1043

原创 操作系统-多线程(2)

start 和 run 是互不相干的内容,run 这个操作还是在main主线程中执行,start 则是创建一个新线程,由新的线程执行调用 start 方法,才在操作系统的底层创建一个线程。

2024-10-26 19:27:03 1140

原创 操作系统-线程(1)

保持了独立调度执行这样的并发支持,又省去了分配资源释放资源带来的额外开销PCB中的内存指针,多个线程的PCB的内存指针,指向同一个内存空间,只是创建第一个线程要从系统分配资源,后续的线程不用分配,共用前面的那份资源操作系统在进行多任务调度,本质上在调度PCB(线程在系统中调度规则和进程一样),线程也有相同的核心属性除内存以外,文件操作符表这个东西也是多线程共用一份每个进程都可以包含一个线程或多个线程进程与线程之间的关系:1、有线程之前,进程既是资源分配的基本单位,也是调度执行的基本单位,有线程之后,进程专注

2024-10-24 21:18:28 464

原创 计算机是如何工作的

X86架构:Inter,Amd 用于家用pc,服务器等arm架构:苹果,高通 用于苹果电脑,手机不同架构cpu,支持的指令集(汇编语言)不同16位cpu 得到结果是 2 (2个字节,16个bit位)32位cpu 得到结果是4(4个字节,32个bit位)64位cpu 得到结果是6 (6个字节,64个bit位)

2024-10-23 17:35:42 1047

原创 性能测试概念篇

为了发现系统性能问题或获取系统性能相关指标而进⾏的测试⼀般在真实环境、特定负载条件下,通过⼯具模拟实际软件系统的运行及其操作,同时监控性能各项指标,最后对测试结果进行分析来确定系统的性能情况常见的性能问题: 查询数据时间过长,网速很慢,服务器⽆响应,查询数据很长时间才显示列表。

2024-10-21 21:00:35 1038

原创 ⾃动化测试常⽤函数

web自动化测试的操作核心是能够找到页面对应的元素,然后才能对元素进行具体的操作。常见的元素定位方式非常多,如id,classname,tagname,xpath,cssSelector常用的主要是cssSelector和xpath。

2024-10-20 21:39:40 951

原创 测试学习-测试分类

软件只是⼀种⼯具,软件与⼈的信息交流是通过界⾯来进⾏的,界⾯是软件与⽤⼾交流的最直接的 ⼀层,界⾯的设计决定了用户对我们设计的软件的第⼀印象;界⾯如同⼈的⾯孔,具有吸引用户的 直接优势,设计合理的界⾯能给用户带来轻松愉悦的感受界⾯测试(简称UI测试),指按照界⾯的需求(⼀般是UI设计稿)和界⾯的设计规则,对我们软件界 ⾯所展⽰的全部内容进⾏测试和检查,⼀般包括如下内容:1、验证界⾯内容显⽰的完整性,⼀致性,准确性,友好性。⽐如界⾯内容对屏幕大小的自适应,换行,内容是否全部清晰展示。

2024-10-18 20:58:05 1274

原创 设计测试用例

测试用例:为实施测试,而向被测试的系统提供的一组集合测试用例包括:测试环境,操作步骤,测试数据,预期结果等要素测试中可能会遇到很多问题:1、不知道是否较全⾯的测试了所有功能2、测试的覆盖率⽆法衡量3、对新版本的重复测试很难实施(即回归测试⽆法仅通过⼈⼯测试的⽅式进⾏历史功能的回归)4、存在⼤量冗余测试影响测试效率测试⽤例的出现就是解决这些问题,通过编写测试用例,我可以想到要测试哪些内容通过一次又一次的更新修改将测试用例写到完成,功能覆盖更高即可,常规思维+逆向思维+发散性思维。

2024-10-17 20:10:04 1106

原创 bug的定义和测试

如果能正确地、⾼质量地录⼊⼀个Bug,那么基本上已经成功地与开发⼈员沟通了⼀⼤半的关于Bug的信息,现在写完⼀个缺陷后,好像还有很多关于Bug的信息没有表达出来,或者很难⽤书⾯语⾔表达出来时, 就应该在提交Bug后,⻢上找相关的程序员解释刚才录⼊的Bug,确保程序员明⽩Bug描述的意思, 而不要等待开发⼈员找⾃⼰了解更多的信息。BUG定级时,不仅要参考BUG级别,还要考虑BUG是否会影响到流程,往往用户的BUG级别和我们的是有区别的,需站在用户角度考虑定位级别。分析缺陷产⽣的原因,找出预防的对策。

2024-10-17 18:56:10 933

原创 测试学习-测试概念

随着软件⼯程学科的发展,⼈们对计算机软件的认识逐渐深⼊。软件⼯作的范围不仅仅局限在程序编 写,⽽是扩展到了整个软件⽣命周期,如软件基本概念的形成、需求分析、设计、实现、测试、安装部署、运⾏维护,直到软件被更新和替换新的版本。软件⼯程还包括很多技术性的管理⼯作,例如过程管理、产品管理、资源管理和质量管理,在这些⽅⾯也逐步地建⽴起了标准或规范。规范的流程是在时代的演变下逐渐成型的,并不是一开始就是规范的流程。

2024-10-15 20:47:54 731

原创 测试学习-认识测试

例如:买衣服1、外观测试(挑选符合审美的衣物)2、试穿测试(挑选尺码去试穿)3、材质测试(考虑一下衣服是否透气等)4、预算测试(价格是否符合预期)

2024-10-14 19:31:46 309

原创 MySql-事务

事务:开发中经常会涉及到一些场景,需要一气呵成地完成一些操作事务可以把多个sql打包成一个整体,可以保证这些sql要么全都正确执行,要么就"一个都不执行"用"原子性"来代指这种不司热分的特性开启事务:start transaction单独执行的每个sql,都是自成一个体系,这些sql间没有原子性结束事务:commit主动触发回滚:rollbackrollback一般搭配一些条件判断逻辑来使用的,sql里也能支持条件,循环,变量函数,但更多的搭配其他编程语言。

2024-10-07 14:00:43 616

原创 MySql索引(index)

数据进行select查询时1、先遍历表2、再把行给带入条件中,看条件足否成立3、条件成立就保留,不成就跳过若表比较大,则遍历的成本比较高,至少为o(N)数据库把数据存储在硬盘里,每读取一个数据,都需要读取硬盘,这个开销本身就是很大的索引是针对查询操作而引发的的优化手段,通过索引来加快查询的速度,避免针对表进行遍历索引能提高查洵速度,但也有代价:1、占用更多的空间,生成索引是需要一系列的数据结构,以及一系列的额外的数据,来储存在硬盘空间的2、可能会降低修改插入删除的速度。

2024-10-06 20:10:46 606

原创 MySQL表操作(进阶)

NOT NULL - 指示某列不能存储 NULL 值UNIQUE - 保证某列的每行必须有唯一的值DEFAULT - 规定没有给列赋值时的默认值。

2024-10-04 14:49:28 1518

原创 MySQL表的增删改查(基础)

语法表名values(值,值......);值与列相匹配。

2024-10-02 12:42:27 875

原创 Mysql数据库基础

show databases;创建名为data-1的数据库create database db_test1;当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则 是:utf8_ general_ ci如果系统没有 db_test2 的数据库,则创建一个名叫 db_test2 的数据库,如果有则不创建create database if not exists db_test2;if not existsd的作用是避免 sql 报错如果系统没有 db_test 的数据库,则创建一个

2024-09-30 14:56:11 395

原创 数据结构-哈希表

顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键 码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O( ),搜索的效率取决于搜索过程中 元素的比较次数。理想的搜索方法:可以不经过任何比较,一次直接从表中得到要搜索的元素。如果构造一种存储结构,通过某种函 数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时通过该函数可以很快 找到该元素。当向该结构中:插入元素。

2024-09-28 18:48:24 767

原创 数据结构-Map

二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树。

2024-09-26 16:01:07 419

原创 数据结构-排序

排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持 不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳 定的;否则称为不稳定的。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。

2024-09-25 15:37:03 494

原创 数据结构-优先级队列

队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队 列时,可能需要优先级高的元素先出队列在这种情况下,数据结构应该提供两个最基本的操作,一个是返回最高优先级对象,一个是添加新的对象。这种数 据结构就是优先级队列(Priority Queue)

2024-09-22 19:45:40 312

原创 数据结构-二叉树(2)

二叉树的基本操作1、获取树中节点的个数2、获取叶子节点的个数3、获取第K层节点的个数4、获取二叉树的高度5、检测值为value的元素是否存在6、层序遍历7、判断一棵树是不是完全二叉树

2024-09-21 20:40:45 243

原创 数据结构-二叉树

树型结构树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看 起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:有一个特殊的结点,称为根结点,根结点没有前驱结点除根结点外,其余结点被分成M(M > 0)个互不相交的集合T1、T2、......、Tm,其中每一个集合Ti (1 <= i <= m) 又是一棵与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继树是递归定义的。

2024-09-20 20:59:01 887

原创 数据结构-队列

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列:进行删除操作的一端称为队头 (Head/Front)双端队列(deque)是指允许两端都可以进行入队和出队操作的队列,deque 是 “double ended queue” 的简称。Queue是个接口,在实例化时必须实例化LinkedList的对象,因为LinkedList实现了Queue接口。

2024-09-18 19:58:24 236

原创 数据结构-栈

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。

2024-09-17 14:55:49 199

原创 LinkedList的模拟实现

对index的检查。

2024-09-16 19:07:33 273

原创 数据结构-ArrayList与顺序表

在集合框架中,ArrayList是一个普通的类,实现了List接口,1、ArrayList是以泛型方式实现的,使用时必须要先实例化2、ArrayList实现了RandomAccess接口,表明ArrayList支持随机访问3、ArrayList实现了Cloneable接口,表明ArrayList是可以clone的4、ArrayList实现了Serializable接口,表明ArrayList是支持序列化的。

2024-09-11 18:30:49 243

原创 时间和空间复杂度

时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个数学函数,它定量描述了该算法的运行时间。一个 算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间。空间复杂度不是程序占用了多少bytes的空 间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。一个算 法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。得到的结果就是大O阶。

2024-09-09 19:26:56 320

原创 Java-初识集合框架

Java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes其主要表现为将多个元素 element 置于一个单元中,用于对这些元素进行快速、便捷的存储 store 、检索 retrieve 、 管理 manipulate ,即平时我们俗称的增删查改 CRUD。

2024-09-09 17:39:22 355

原创 Java-String(3)

说明:在尾部追加,相当于String的+=,可以追加:boolean、char、char[]、 double、float、int、long、Object、String、StringBuff的变量。由于String的不可更改特性,为了方便字符串的修改,Java中又提供StringBuilder和StringBuffer类。String变为StringBuilder: 利用StringBuilder的构造方法或append()方法。StringBuilder变为String: 调用toString()方法。

2024-09-08 22:00:17 324

原创 Java-String(2)

2、注意前闭后开区间的写法, substring(0, 5) 表示包含 0 号下标的字符, 不包含 5 号下标。可以将一个完整的字符串按照指定的分隔符划分为若干个子字符串。由于字符串是不可变对象, 替换不修改当前字符串, 而是产生一个新的字符串.

2024-09-07 22:22:59 235

原创 Java-String类(1)

在C语言中已经涉及到字符串了,但是在C语言中要表示字符串只能使用字符数组或者字符指针,可以使用标准库提 供的字符串系列函数完成大部分操作,但是这种将数据和操作数据方法分离开的方式不符合面相对象的思想,而字 符串应用又非常广泛,因此Java语言专门提供了String类。字典序:字符大小的顺序 String类重写了父类Object中equals方法,Object中equals默认按照==比较,String重写equals方法后,按照 如下规则进行比较,比如:s1.equals(s2)

2024-09-06 21:09:56 483

原创 Java-多态

Java中为了提高向下转型的安全性,引入 了 instanceof ,如果该表达式为true,则可以安全转换。将一个子类对象经过向上转型之后当成父类方法使用,再无法调用子类的方法,但有时候可能需要调用子类特有的 方法,此时:将父类引用再还原为子类对象即可,动态绑定:即在编译时,不能确定方法的行为,需要等到程序运行时,才能够确定具体 调用那个类的方法。3、被final修饰的方法不能重写(该方法被称为密封方法)向上转型的缺陷:不能调用到子类特有的方法。3、通过父类的引用调用重写的方法。6、构造方法不能被重写。

2024-09-03 17:01:01 352

空空如也

空空如也

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

TA关注的人

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