- 博客(64)
- 收藏
- 关注
原创 【Jmeter】性能测试之压测脚本生成,也可以录制接口自动化测试场景
打开SSL管理器,查看证书存储的文件地址;证书:ApacheJMeterTemporaryRootCA.crt。我的存储地址是C:\Users\admin\Downloads\apache-jmeter-5.6.3\bin把这个证书添加到浏览器的证书管理里。
2024-05-29 11:02:16
1058
原创 【Jmeter】使用Jmeter进行接口测试、跨线程组获取参数
右击HTTP请求,选择添加,选择配置元件,选择用户定义的变量。名称(变量):即上一步操作写的$ {username} 里的username值(变量取值):就是username里存放的值。
2024-05-24 16:13:55
1107
原创 【自动化测试】使用MeterSphere进行接口测试
自动化测试按对象分为:单元测试、接口测试、UI测试等。接口是指系统或组件之间的交互点,通过这些交互点可以实现数据的交互。接口就好像一根水管,通过这根水管可以把水房的水传输每家每户,而这根水管的容量大小就决定了传输的水容量,水管越粗,一个时间点内流通的水的体积就越大,也就是说接口的传输容量就决定了服务器向客户端一次传输的数据大小,而对于系统的接口就是方法与方法之间、模块与模块之间的交互,主要是校验数据的交换、传递和控制管理过程,以及相互逻辑依赖关系。
2024-04-26 14:37:26
3712
原创 JVM相关面试题
JVM内存区域的划分,之所以划分是为了JVM更好的进行内存管理。就好比一间卧室,这块放床,这块放个电脑桌,每块地方各自有各自的功能,床用来睡觉,电脑桌用来办公打游戏。而JVM划分的内存区域也是各自有各自的用处。首先当JVM启动时,会申请一块很大的空间,然后把这块空间分成几块较小的区域,如下图。注意一下哈,此处总结为:栈存储的是局部变量,堆储存的是普通成员变量,元数据区存储的是静态成员变量。
2024-02-22 16:58:30
1853
2
原创 【面试题】谈谈MySQL的事务
MySQL的事务就是把多个sql语句操作打包在一起执行,要么全部执行,要么一个都别执行。这种操作称为“原子性”,是事务最核心的特征。当某个sql操作出错时,就会进行“回滚/rollback”操作,即把执行过的操作逆向恢复回去,数据库会把每个操作记录下来,当某个操作出错时,就会把之前的操作进行逆操作,比如前面是删除操作,逆操作就进行插入操作,把删除的数据重新插入回去。当开启事务后不会立即执行sql操作,会等到commit提交事务后,会统一执行多个sql。
2024-02-21 14:42:26
920
原创 【面试题】谈谈MySQL的索引
可以把Mysql的索引看做是一本书的目录,当你需要快速查找某个章节在哪的时候,就可以利用目录,快速的得到某个章节的具体的页码。Mysql的索引就是为了提高查询的速度,但是降低了增删改的操作效率,也提高了空间的开销。比如一本书很薄的时候,章节不多,对应的目录也就很少 ,可能才一两页,当书的章节很多时,对应的目录也就很多,需要更多的页码来存储目录,当数据库中表的数据很多时,对应的索引也就需要更多的空间来保存,因此说空间的开销会被增加。查看索引。
2024-02-20 16:02:34
1379
原创 SpringBoot用MultipartFile.transferTo传递相对路径的问题
打算给自己的项目添加一个上传文件保存功能,于是我使用MultipartFile.transferTo()来完成这个功能,由于我的项目要部署到服务器,所以我使用了相对路径把上传的文件保存到当前项目的工作目录下,但是报错了!(绝对路径可以正常使用,找了一下午没弄明白,第二天早上才反应过来会不会是这个方法就不支持直接使用相对路径,果然是猜想的这样!
2024-01-10 12:25:07
1124
原创 【Spring】三种对象注入的实现与区别以及@Autowired和@Resource的区别
就好像HashMap与HashTable,HashMap可以允许key-value是null,但是HashTable就不能,因为HashTable底层可能是数组加链表实现的,需要根据key值来计算位置的,HashMap源码中写了null值的处理,为null转换成0,而HashTable并没有进行特别处理,只能报错。@Resource的注入能力弱于@Autowired,只能用于属性注入和set方法注入,@Autowired可以用于属性注入、set方法注入以及构造方法注入。注解的属性自动获取一个对象。
2023-10-15 16:12:57
449
原创 TCP原理特性详解
而四次挥手则不同,这两次交互是不同时机,当主机A的应用程序执行到socket的close方法时会触发FIN结束报文段,服务器接收到FIN后,内核会立即返回ACK,FIN是人为发送的,而ACK是由系统内核控制的,当主机B的应用程序执行到socket的close方法时也会触发FIN,应用程序执行到close方法前可能要经过很多道其他的程序代码,于是和ACK的时机相隔太久,也就不能合并为一次交互。为了解决丢包问题,TCP引入了超时重传机制,在丢包的情况下,重新发送一份相同的数据。一起吃饭,别放鸽子。
2023-10-08 18:47:54
567
原创 UDP 的报文结构
UDP会在原有的应用层数据报前拼接一个UDP报头(字符串拼接,二进制格式),而报头里则包含了一些重要的信息。UDP报头总大小为8个字节,一个字节为8个bit,每个部分的大小为2个字节,即取值范围为:0 ~ 65535。因此如果应用层数据报的长度大于64kb了,要么在应用层手动进行分包,比如:100kb的数据报,可以分为64kb和36kb,分两次转发;**发送方针对数据进行一系列的运算得到一个较短的校验和,接收方按照相同的算法根据接收到的数据计算校验和,再用这个校验和与发送方的校验和对比,是否一致。
2023-09-22 10:43:08
195
原创 TCP/IP五层模型、封装和分用
一天,我在tb买了一袋子的抹布,付款后,上海商家准备发货,把快递交给了sf快递公司,该公司准备把这个快递进行运输,运输的路线有:上海=》南京=》湖北 / 上海=》广州=》湖北,具体走哪条路线就是快递公司的事情了,这工作就好比是网络层;,就好比加密通话,说暗号,我不要碟盘了(我没事了),我对别人说:“我不要碟盘了”,对方收到后,通过之前约定的协议,对这句话进行解读,意思就是”我没事了“最原始的协议是一大类,复杂难懂,于是进行了分化,分成多种短小的协议,也就是分层,每层有各自代表的意义和作用,
2023-08-27 14:11:51
1120
原创 二叉树的性质、前中后序遍历【详细】
根据上述规律,做出这道题:1.设一课二叉树的中序遍历序列:badce,后序遍历序列:bdeca,则二叉树前序遍历序列为()根据规律可以画出如下图:根据后序遍历,最后一个打印的节点是a,那么a肯定就是这颗二叉树的根节点,再根据中序遍历,按照a的位置,划分左右子树,a的左边是a的左子树,a的右边是a的右子树,由于a的右边有多个节点,不确定哪个节点是a的孩子节点,所以要继续化简,于是得出:
2023-08-04 17:16:17
983
1
原创 通过IDEA发送QQ邮箱信息
先创建一个普通的Maven项目,我就不演示啦,个人博客已经写过~创建一个SendEmail类:直接复制即可,不需要理解。
2023-07-28 15:02:55
986
原创 Java类的访问修饰符为什么只能是public或是default
Java中类的访问修饰符并不仅限于public,还可以是default(即没有明确指定修饰符)。这两种访问修饰符的使用场景和含义略有不同。
2023-07-23 16:31:51
470
原创 最详细的下载安装PicGo图床配合Typora使用
添加了gitee插件之后,要把它设为默认图床就可以解决了。不然你使用的是SM.MS图床。】点击下载链接,进行跳转,此链接为GiHub网站,可能会加载不出来。之前创建Gitee仓库时,默认选择的master分支。上传图片时,会在gitee仓库创建一个名为img的文件夹。】点击跳转页面,建议下载红色框中的版本。我下载的是beta版本,测试版,相对正式版不稳定。:repo为用户名+仓库。需要自己检查一下是否填错。customPath:选择年月。
2023-07-13 15:13:15
3056
3
原创 MyBatis查询数据库【秘籍宝典】
MyBatis 是⼀款优秀的持久层框架,它⽀持⾃定义 SQL、存储过程以及⾼级映射。MyBatis 去除了⼏乎所有的 JDBC 代码以及设置参数和获取结果集的⼯作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接⼝和 Java POJO(Plain Old Java Objects,普通⽼式 Java 对象)作为数据库中的记录。通过使用MyBatis,开发人员可以方便地执行CRUD操作(创建、读取、更新和删除),以及复杂的数据库查询和存储过程的调用。
2023-07-08 15:13:25
681
原创 SpringMVC全套详解
表示应用程序中的数据和业务逻辑。在Spring MVC中,通常使用POJO(Plain Old Java Object)作为模型对象。通常模型对象负责在数据库中存取数据。负责展示用户界面,通常是HTML页面、JSON响应或其他类型的视觉呈现。视图负责将模型数据渲染,并向用户呈现。接收并处理HTTP请求,并根据请求的内容选择相应的处理方法。控制器负责调度适当的业务逻辑,操作模型数据,并通过相应的视图返回响应结果。
2023-06-25 16:22:05
7512
1
原创 SpringBoot日志文件
先获取日志对象,需要使用日志工厂Logger对象是属于org.slf4j包下的。日志工程需要把每个类的类型传递进去,这样打印的时候才知道日志的归属类,方便直观的定位到问题类(也可以自定义名字)。//打印日志 logger . info("i am info");
2023-06-25 16:15:12
940
原创 SpringBoot配置文件
在上述代码中,@Autowired注解用于将StudentController类自动注入到YAMLRead中,我们就可以使用StudentController类代表的Bean实例studentController对象了。总之,Spring Boot的配置文件是配置应用程序行为和属性的重要途径,能够实现应用程序的灵活配置和多环境支持,提高了代码的可维护性和可扩展性。prefix可以省略。properties 配置⽂件是最早期的配置⽂件格式,也是创建 Spring Boot 项⽬默认的配置⽂件。
2023-06-20 14:50:58
1555
原创 SpringBoot创建和运行
src/main/java是JAVA的源代码存放处src/main/resource是静态资源或配置文件的存放处static:是静态资源文件夹,放前端的东西(html、css,图片等)templates: 是模版资源文件夹application.properties : 当前项目的配置文件(后缀可能是.properties 或者是.yml / yaml)src/test/java: 是单元测试target。
2023-06-19 14:18:23
2561
原创 Spring执行流程和Bean的生命周期
Spring执行流程(Bean执行流程):1、在启动类中遇到了ApplicationContext的时候就会启动 Spring 容器 -> 2、根据容器设置的配置文件,去找相应的配置文件;->3、如果有base-package,那么就去base-package里循环找所有的类,看有没有五大类注解和方法注解;->4、 如果有注解,进行初始化和属性依赖赋值。
2023-06-18 16:13:22
971
原创 Spring - Bean的6种作用域
程序中变量的可用范围就叫做作用域,或者说在源代码中定义某个变量在某个区域就叫做作用域。而Bean的作用域是指Bean在Spring整个框架中的某种行为模式,比如singleton单例作用域,就表示Bean在spring中只有一份,全局共享的,当A修改了这个值后,那么B再使用时就是修改后的值。
2023-06-17 16:49:03
1651
1
原创 Spring五大类注解和方法注解
通过上面示例,可以看出一般Bean使用的都是标准的大驼峰命名,而获取的时候类名首字母小写就可以得到bean。想要将对象成功的存储到Spring容器中,需要配置一下存储对象的扫描包路径,只有被配置的包下的所有类,添加了注解才能被正确的识别并存储到Spring容器中。 1、 @Controller:控制层,验证前端参数是否合格,如果合格才会执行下面的代码。2、@Service:服务层,服务的调度,调用接口,比如要调用几个Repository…类注解是添加到某个类上的,而方法注解是放到某个方法上的,
2023-06-14 14:15:34
781
原创 spring创建和使用
context.getBean(“student”),【括号里的名称必须要和注册Bean时里的id名称一致】说明名为student这个对象已经成为了Bean对象,只有存储到Spring里才能获取到.由于getBean返回类型为Object 所以需要强转为Student,这有个缺陷:如果在注册Bean时,没有Student这个类,此时getBean获取时为。:存放的这个类,如果本身是有路径的【比如在com下的spring下的demo里】,就填“com.spring.demo.Student”
2023-06-13 15:14:10
686
原创 Maven配置文件settings.xml 和 jar包下载失败处理
题,尝试更好⽹络,使⽤⼿机热点或朋友的⼿机热点尝试,如果还是不行,间隔4小时后再尝试。【可能刚好你的网络节点坏掉了,网线被挖断了等等,真就有可能,一般会有抢救小组进抢修,一般都是2-4小时内维修完毕】可以使用VsCode打开该文件,找到mirrors,里面是没有任何的配置的,需要把阿里的镜像文件或者是网易的镜像文件都可以【此处使用的是阿里镜像】【在我的资源里,下载解压缩,资源暂时在审核中,可自行在CSDN里搜索settings.xml】重新认真的逐字逐句的观看和配置【可能你setting的g后面少了s…
2023-06-12 17:47:13
2534
原创 Spring 是什么?IoC 和 DI的区别
**用一句话概括Spring:包含了众多工具方法的IoC容器,也就是说Spring最核心的功能就是容器管理。**这句话大抵有两个方面需要解读,一是IoC,二是容器。
2023-06-09 16:14:27
3774
原创 Java线程安全问题的原因和解决方案
线程安全的确切定义是比较复杂的,不过我们可以这样认为:当多线程环境下的代码运行的结果是符合我们预期的,即在单线程环境下应该得到的结果,则说这个程序是线程安全的,反之,则是线程不安全.注意:判定一个代码是否线程安全,要具体问题具体分析,不是加了锁就一定安全~
2023-02-03 21:23:49
816
3
原创 Java 线程的几种状态及其切换的条件
表示内核中的PCB已经执行完毕了,但是Tread对象还存在(依旧可以调用一些方法,但是不能使用多线程,也就无意义了).表示线程执行完毕或者run()因异常退出,该线程结束了生命周期.表示创建了Thread对象,但是还没有调用start (也就是系统内核还是没有创建对应的PCB)表示可运行的.线程创建后,调用了start方法,等待CPU的调度或者正在CPU中运行.:该线程调用了wait()方法后进入阻塞队列,等待其他线程唤醒.表示该线程等待(阻塞)一定的时间后,自动返回(自己醒来了).
2023-01-17 21:14:52
523
原创 JavaThread 类的基本用法
线程是一个随机调度的过程,所有完全无法判断线程之间的执行顺序,所以为了能判断线程的执行顺序就有了等待线程,控制线程的结束顺序.线程中断:并不是让线程停止就立马停止,而是通知线程应该停止了,是否真正的停止,取决于线程这里的具体代码写法.interrupt()是Thread自带的标志位.这个东西可以唤醒sleep方法.join(long millis): 指定一个超时的时间,时间到了就不再等待。线程休眠就是休眠线程,本质上是不让这个线程参与调度(不去CPU跑了);join() :无参数版本,“无终止的等”
2023-01-06 21:08:39
605
原创 【面试问题】进程和线程的区别——通俗易懂
在对比"进程"和"线程"两者之间的区别前,我们需要先了解什么是"进程"?什么是"线程"?**“进程”(process)也叫"任务"(task)**即咱们电脑的任务管理器中有个进程页面,这个页面所展示的都是电脑里正在运行的一些进程.只有当一个程序跑起来了,才能叫"进程",否则不算是"进程",像电脑磁盘里放着一些文件、可执行程序等等这些都不能算是进程!一个系统在同一时刻可以跑多个进程,每个进程都会消耗一些资源CPU,内存,磁盘,网络…所以当进程多了电脑了就卡了呗.(有的人说是C盘东西多了,电脑卡清一清就没事了,
2022-12-07 20:03:29
807
原创 JDBC操作数据库实现增、删、查、改
实际开发中,手动的输入SQL语句是少之又少,大多数情况下是通过编译代码进行来控制自动执行.具体操作如下:上述展示有一个【自己写的Mysql客户端】,这种操作是非常容易的,因为各种数据库本身就提供一系列的API,可以让用户很方便的实现这个客户端。**显然MySQl提供的有(Application Programming Interface )Java也提供了一些API 这些API 提供了一些类和方法,通过这些类和方法可以进行一系列操作,比如操作硬盘的文件,进行增删查改,操作数据库等 **。
2022-11-27 20:52:59
1223
原创 下载MySQL驱动包,并导进idea
大版本号对应就可以,小版本无所谓。比如我的MySQL的版本是5.1.47,那我就可以下载5.1版本的,5.1后面是小版本号。.jar是一个java格式的压缩包。Mysql驱动包可以去“
2022-11-25 12:36:02
1505
原创 深入理解MySQL索引的数据结构和事务的四大特性、隔离性的四种级别
1. `read umcommitted`:不做任何限制,事务之间随意并发执行,并发程度高,隔离性最低,会产生脏读、不可重复读、幻读。2. `read committed`:对写操作加锁,并发程度降低,隔离性提高,解决脏读,仍存在 不可重复读、幻读。3. `repeatable read` :对读写都加锁,并发程度再次降低,隔离性再次提高,解决 脏读、不可重读,可能存在幻读。4. `serializable` : 严格串行化,并发程度最低【串行执行】,隔离性最高,解决 脏读、不可重复读、幻读。执行速
2022-11-23 15:33:17
628
原创 【MySQL进阶】表的增删改查操作(CRUD)+(SQL执行顺序)
此时就可以看出"java"和"数据库"的对应关系80 > 60.仔细看见表可以发现 有左3 右1 和 左1右3的排列组合,因为排列组合是把所有可能性都排列出来了.可以把符合条件的记录挑选出来.自连接:自己和自己进行迪尔卡积.就是把行转成列,SQL中无法针对行和行之间进行条件比较,但是有的需求,又需要进行行和行之间比较,这时候就可以使用自连接,把行转成列.自连接也会产生大量的无效匹配数据,所以也需要指定连接条件,在这里我们需要指定每个同学和自己的"数据库","java"成绩进行比较.
2022-11-19 20:05:21
1551
10
原创 【MySQL】数据库的约束
对副表classes进行insert插入classes_id操作,主表student中的id存在要插入的数据,才能成功插入,否则报错.创建一个班级表,一个班级对应多个学生,classes_id为外键,关联student表id.创建表时,可以指定某列为unique ,表示,该列出现的元素只能有一次,不能重复(唯一)foreign key (字段名):表示副表,也就是该表中你想要和主表关联的字段名.创建表,指定插入数据时,name列为空,默认值是"未命名"创建表时,可以指定某列不为空。
2022-11-19 20:00:23
317
原创 MySQL表的增删改查操作(CRUD)
查询出来的临时表math加了10分,但是原表内容并没有改变。表达式包含一个字段:给math加10分;关键字,对于查询的指定列去重。
2022-11-16 16:29:18
848
6
原创 MySQL数据库、表的基本操作和常用数据类型
sql语法中没有大小写之分.sql语句是以;[分号为结束标志]1.创建数据库语法:create database 数据库名 ;在这里插入图片描述注释:create database 表示关键字,[创建数据库]不能重复创建同一名称的数据库,可以在create database 后加 if not exists 数据库名;表示如果存在此数据库,则不创建,不存在,则创建.2.使用数据库语法:use 数据库名;use 是使用数据库的关键字;在这里插入图片描述3.显示当前已
2022-11-06 19:52:46
386
4
原创 MySQL安装、修改默认字符集、添加path路径 (超详细,带图文)
执行安装包之后,系统会有一些安全阻止提醒,同意即可,接下来同意授权许可,继续下一步。选择 **Custom** !!!安装能够满足MySQL开发的基本组件,这里选择MySQL Server,**选择x86(32位)还是x64(64位)根据系统类型决定**。 - [ ] 点击Next 点击Next配置类型和网络** MySQL安装包给我们默认提供了最佳配置, 此处配置保持默认即可,**一路一直点击Next**。
2022-11-04 22:07:24
1805
6
原创 【七大排序算法】插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序
所谓排序,就是把一堆杂乱的数据,排成升序或降序(递增/增减)。假设一组数据[1,2,9,5,5,6,8],进行升序排序后,两个5的相应位置不发生改变,即称为稳定的排序,否则就是不稳定排序。数据元素全部放在内存中进行排序。即将待排序的记录存储在外存中,排序时再把数据一部分一部分地调入内存进行排序,在排序过程中需要多次进行内存和外存之间地交换。
2022-10-29 19:07:07
3314
10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人