自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【测试】性能测试基础理论

就是软件质量属性中的“效率”特性效率特性:时间特性:表示系统处理用户请求的响应时间(时间效率高:不卡;时间效率低:卡)资源特性:表示系统运行过程中,系统资源的消耗情况(包括CPU、内存、磁盘等)性能测试概念:使用自动化测试工具,模拟不同场景,对软件各项性能指标进行测试和评估的过程1.后台处理程序的性能(代码性能)2.应用服务器、数据库、架构设计等是否存在瓶颈3.服务器资源消耗(CPU、内存、磁盘、网络)测试报告是对性能测试工作的总结,为软件后续验收和交付打下基础。

2025-03-06 16:48:38 736

原创 【开发问题记录】启动某个微服务时无法连接到seata(seata启动或配置异常)

1.第一个就是seata的配置问题,这里要注意检查Nacos中的配置和Linux容器中seata的配置2.第二个是网络连接的问题,在本地与虚拟机之间要进行网络连接,需要关闭双方的防火墙,避免访问不到对方的IP和端口。

2024-07-28 10:38:58 1279

原创 【开发问题记录】启动某个服务时请求失败(docker-componse创建容器时IP参数不正确)

因为我是拉取的别人的项目,所以需要在本地配置项目需要的环境,在本地虚拟机中需要使用docker 进行服务的部署,我当时的流程是这样的,将必要的软件安装好后(就是docker和docker-componse),然后上传docker-compose.yml文件,里面有容器的启动命令,包含了各种参数的配置,如下,当时我不知道seata的配置中还有ip的配置,这个ip跟我的虚拟机的ip并不一致,所以就导致了后面的问题。我在启动某个服务的时候,这个服务一直请求失败,我通过查看它的运行日志找到了问题所在。

2024-04-21 11:33:56 693 1

原创 【开发问题记录】Nacos修改服务实例权重时报错

我在本地修改完代码后,需要与网关联调,进行测试,但由于本地和服务器都启动了该服务,所以需要在nacos的服务中心对该服务的两个实例(本地、虚拟机)中的一个进行权重的修改,目的是保证服务请求一定进入本地启动的服务。在运行项目时,在本地启动了一个服务,但是在虚拟机中也有相同的服务启动,因为是在开发阶段,要先在本地进行代码编写,完成后再提交到服务器进行部署上线。找到本地nacos安装目录,找到data文件夹,删除protocol文件即可。我在修改权重时,点击确定后,nacos产生了报错信息,如(

2024-04-16 18:21:28 956

原创 【软件测试】个人博客系统测试

自动化测试简单来说就是使用自动测试工具和自动测试脚本来完成指定的测试任务,测试启动过程不需要人为参与,但自动化测试之前的准备需要人工手动配置好。它是一种将重复性的、繁琐的测试任务交给计算机自身来执行,它可以大幅度提高测试效率、减少测试人员的成本、提高测试覆盖率和准确性。

2024-04-10 21:30:33 1592

原创 【软件测试】测试常见知识点汇总

测试是测试人员验证软件特性是否符合需求的过程可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。需求 —> 计划 —> 编码 —> 测试 —> 上线 —> 维护需求:确定软件要做成什么样计划:确定软件什么时候开发,什么时候开始测试,什么时候结束开发,什么时候结束测试编码:通过软件需求实现软件特性测试:测试人员测试软件是否有缺陷上线:将项目推上上线环境,让用户可以访问到。

2024-04-05 21:20:26 4515

原创 【SpringCloud】SpringAMQP消息发送、消息接收(WorkQueue模型、FanoutExchange、DirectExchange、TopicExchange、消息转换器)

是用于在应用程序或之间传递业务消息的开放标准,该协议与语言和平台无关,更符合微服务中独立性的要求。是基于AMQP协议定义的一套API规范,提供了模板来发送和接收消息。包含两部分,其中spring-amqp是基础抽象,spring-rabbit;是底层的默认实现。用于异步处理入站消息的侦听器容器用于发送和接收消息的 RabbitTemplateRabbitAdmin 用于自动声明队列、交换和绑定@Testi

2024-03-23 15:24:51 967 1

原创 【若依】前后端分离版快速上手

若依框架(RuoYi)是一个基于Spring Boot和Vue.js的快速开发平台,它提供了一套前后端分离的解决方案,能够帮助开发人员快速构建企业级应用程序。该框架包含了许多常用的功能模块,如用户管理、角色权限、数据字典、系统监控、定时任务等,同时也提供了丰富的插件和扩展机制,可以方便地进行定制开发。对于开发人员来说,若依框架提供了一套完整的开发工具和解决方案,可以大大提高开发效率。开发人员可以利用框架提供的模块和组件快速搭建起一个基础的系统框架,然后根据具体业务需求进行定制开发。

2024-02-02 12:42:44 1737

原创 【软件工程】软件工程复习题库2023

所谓数据字典,是数据流程图的基础上,进一步定义和描述所有数据的工具,包括对一切动态数据(数据流)和静态数据(数据存储)的数据结构和相互关系的说明,是数据分析和数据管理的重要工具,是系统设计阶段进行数据库(文件)设计的参考依据。数据字典是一种用户可以访问的记录数据库和应用程序源数据的目录。数据字典的内容主要是对数据流程图中的数据项、数据结构、数据流、处理逻辑、数据存储和外部实体等六个方面进行具体的定义。数据流程图配以数据字典,就可以从图形和文字两个方面对系统的逻辑模型进行完整的描述。

2023-12-19 17:54:38 7417 10

原创 【Feign】 基于 Feign 远程调用、 自定义配置、性能优化、实现 Feign 最佳实践

Feign 是一个声明式的http客户端,声明式就相当于MySQL中的事务一样,在Spring中要开启事务,不需要手动打开或关闭,只需要在配置文件中声明事务,Spring就会自动实现事务,同样声明式http客户端也是如此,Feign可以帮助我们优雅的实现http请求的发送。1.引入依赖。

2023-11-19 11:35:27 1082 1

原创 【Nacos】配置管理、微服务配置拉取、实现配置热更新、多环境配置

在微服务搭建中,每个微服务中的业务都需要去完成数据库查询,并且服务之间还会完成相互调用,而要完成相互调用,需要将每个服务都注册到服务中心,消费者就可以从服务中心完成注册发现实现服务获取和负载均衡,完成远程调用,随着服务的增多,可能会有数十上百上千条这种情况,这时就需要对配置文件进行修改,这个配置文件可能跟数十上百上千条微服务都有关系,这时就需要逐个去修改配置,会非常麻烦,而且在配置完后,还需要对每个服务进行重启,而进行统一配置管理后只需要对一个配置文件进行修改即可,通过配置管理服务就可以实现在修改完配置文件

2023-11-18 12:04:30 1779 1

原创 【MybatisPlus】条件构造器、自定义SQL、Service接口

我们可以利用MybatisPlus的Wrapper来构建复杂的where条件,然后自己定义SQL语句中剩下的部分。

2023-11-11 12:30:30 688

原创 【JVM】运行时数据区、程序计数器

类加载器将字节码文件加载到内存当中的时候,会用到两块内存区域:一块是方法区、另外一块叫做堆区,这两块区域都属于Java虚拟机管理的内存,由于JVN在运行过程中会去使用这块内存,所以就称之为运行时数据区域,它的职责除了保存字节码信息之外,还可以将创建出来的对象放到这块内存区域。

2023-11-08 20:32:43 431

原创 【JVM】JDBC案例打破双亲委派机制

JDBC的这个框架的目的是在Java中操作数据库,在他的设计的核心思想中不希望出现具体的数据库的语法,提高它的泛用性,将来对接任何数据库都会比较容易,在JDBC中,设计了一个`DriverManager`的类,这个类会去管理在jar包中的引入的数据库的驱动,比如要使用mysql数据库,那么就会添加一个mysql的驱动jar包,`DriverManager`会负责把驱动jar包加载进来,这样就可以连接mysql的数据库了,要想连接其他类型的数据库,只需将jar包替换成其他数据库的即可

2023-11-05 21:32:00 680

原创 【JVM】双亲委派机制、打破双亲委派机制

双亲委派机制指的是:当一个类加载器接收到加载类的任务时,会自底向上查找是否加载过,再由顶向下进行加载。假设在com.practice包下有一个类A.java,应用程序类加载器接收到一个任务,他要去加载A.java这个类,首先他会检查一下这个类有没有被加载过,发现没有被加载过,那么他就会把这个类委派给它的父类(扩展类加载器),扩展类加载器发现也没有加载过,继续向上委派,委派给它的父亲(启动类加载器),启动类加载器发现A.java曾经加载过,所以它直接把A.java类的class对象返回,加载过程结束。

2023-11-04 21:17:13 516

原创 【JVM】类的声明周期(加载、连接、初始化)

加载(Loading)阶段第一步是类加载器根据类的全限定名通过不同的渠道以二进制流的方式获取字节码信息程序员可以使用Java代码拓展的不同的渠道。

2023-10-30 20:56:13 186

原创 【JVM】字节码文件的组成部分

要想看到java的字节码文件的内容,可以通过jclasslib这个工具来看,运行以上代码,然后通过jclasslib可以看到在这个方法中变量的存放位置,其中,局部变量表数组的0索引位置存放的是main方法的参数 args ,1索引位置存放的是第一个变量 i ,2索引存放的是第二个变量 j ,可以看出,定义在方法中的变量,方法的参数也将作为这个方法的变量存入局部变量表中,定义在方法内的变量会按定义的先后顺序依次存入局部变量表中。

2023-10-28 20:46:55 777

原创 【力扣刷题】删除链表的倒数第 N 个结点、两两交换链表中的节点、随机链表的复制

我的思路是先求出整个链表的长度,要删除倒数第n个节点,则将链表的长度减去n得到要删除的节点的前一个节点的索引,将链表长度减n+1得到要删除的节点的索引,定义两个指针,一个指针表示要删节点的前一个节点,另一个表示要删的节点,根据两个索引值对链表进行遍历,遍历索引值减1次就能得到索引对应的节点处,然后将要删节点的前一个节点的next指向要删的节点的next,完成倒数第n个节点的删除,当要删除的是第一个节点时(即删除倒数第链表长度个节点),直接改变头节点的位置即可。

2023-10-24 21:28:40 146

原创 【力扣刷题】只出现一次的数字、多数元素、环形链表 II、两数相加

创建Map集合,遍历数组,根据当前数字作为键的参数拿到集合中的值count,再判断这个count值是否为空,若为空,则默认这个值为1,将其和当前数字添加到Map集合中,若不为空,则这个值自增1,表示第二次出现这个数字,再将其和当前数字添加到Map集合中,覆盖之前的键值对,当遍历完这个数组后,再对Map集合进行遍历,根据数字作为键的参数得到它所出现的次数,判断这个此时是否等于1,若等于1,即表示当前数字只出现了一次,返回这个数字即可。

2023-10-23 21:31:49 197

原创 【力扣刷题】二叉树的中序遍历、二叉树的最大深度、翻转二叉树、对称二叉树

二叉树不为空,则定义一个栈,用来实现二叉树的中序遍历,定义一个节点指针cur,表示当前节点,当cur不为空或者栈不为空时,进入循环,在循环内再嵌套一个条件为cur不为空的循环,在嵌套的循环中将当前节点加入到栈中,并将当前节点指向当前节点的左子节点,直到将所有的左子节点均添加到栈中,内嵌循环结束,外部循环继续执行,将此时的栈顶元素弹出,并将弹出的节点值加入到集合中,将cur指向弹出的栈顶元素的右子节点,循环遍历,直到栈为空时退出循环,返回集合。

2023-10-22 20:51:19 161

原创 【力扣刷题】数组实现栈、后缀表达式(逆波兰表达式)求值、中缀表达式转换为后缀表达式(无括号&&有括号)

用数组来实现栈的方法相对比较简单,首先定义一个数组,用来模拟栈的功能,定义一个整型变量作为栈顶指针(`int top`),为这个数组栈定义一个带形参的构造方法,参数表示数组的默认长度(`int capacity`),即栈的容量。

2023-10-21 20:39:51 191

原创 【力扣刷题】回文链表、环形链表、合并两个有序链表

首先是要对该链表进行非空校验,若是空链表,直接返回fasle,否则,执行其它逻辑,按照回文链表的规律,可以有这样一个思路:若它是回文链表,可先找到他的前半个回文链表的最后一个节点,通过这个节点,就能找到开始回文的下半个链表的最后一个节点,从该节点处,将后半个回文链表进行整体反转,然后再定义指针进行遍历,从前半个回文链表的头开始作为p1指针,后半个回文链表的头作为p2指针,遍历整个回文链表,判断它们的值是否相同,若不相同,则不是回文链表,否则就是回文链表。

2023-10-20 20:02:34 383

原创 【MyBatisPlus】快速入门、常用注解、常用配置

1.2 自定义的Mapper继承MyBatisPlus的BaseMapper接口1.3 对比Mybatis要操作的数据库表结构:Mybatis的UserMapper.java:Mybatis的UserMapper .xml:MyBatisPlus只需UserMapper.java继承 BaseMapper即可:1.4 MyBatisPlus的增删改查方法二、MyBatisPlus常用注解类名驼峰转下划线作为表名名为id的字段作为主键变量名驼峰转下划线作

2023-10-18 21:03:42 884

原创 【MySQL】索引介绍、索引的数据结构

MySQL索引数据结构对经典的B+Tree进行了优化。在原B+Tree的基础上,增加一个指向相邻叶子节点的链表指针,就形成了带有顺序指针的B+Tree,提高区间访问的性能。

2023-10-17 20:52:20 355

原创 【MySQL】如何在Linux上安装MySQL

切换到mysql目录下,因为对于rpm的包资源管理器来说,它是不会处理它们的依赖关系的,所以要按照一定的顺序安装,依次执行如下命令:

2023-10-16 12:45:51 441

原创 【操作系统】信号量机制(整型信号量、记录型信号量),用信号量实现进程互斥、同步、前驱关系

进程P0在使用资源之前,必须要先进行一个wait原语,对信号量S进行操作,如果当前资源已不够用,整型信号量S就是小于0的,此时P0就需要一直循环等待,若是P0进程执行wait时S大于0,就说明资源够用,此时资源的数量就要减一,此时P0就可以访问资源,在P0访问资源的同时,若是发生了进程切换,其他进程则需要等待P0释放资源才能访问,P0访问资源结束后,会进行signal原语,将整型信号量的值进行加一,也就是释放资源。

2023-10-15 21:35:25 2867 2

原创 【MySQL】事务四大特性ACID、并发事务问题、事务隔离级别

隔离性指的是有若干个并发事务,比如有两个事务,事务1和事务2都在同时操作这个数据库,事务1去操作的时候不会影响并发的事务2的执行,事物2去操作的时候也不会影响并发的事务1去执行,这两个事务是在独立的环境下运行的。

2023-10-14 20:25:50 476

原创 【MySQL】存储引擎简介、存储引擎特点、存储引擎区别

存储引擎是MySQL当中核心的部分,是MySQL当中特有的,是MySQL当中存储数据、建立索引、更新/查询数据等操作的实现方式,不同的存储引擎在实现存储数据、建立索引、更新/查询数据等操作的机制是不一样的,存储引擎是基于表的,而不是基于数据库的,所以在一个数据库下的多张表是可以基于不同的存储引擎的,存储引擎也可被称为表的类型。

2023-10-12 21:32:53 476

原创 【JVM】初步认识Java虚拟机

JVM全称是Java Virtual Machine,中文译名Java虚拟机,JVM本质上是一个运行在计算机上的程序,它的职责是运行Java字节码文件,在字节码文件中包含了一连串的指令,这个指令就是字节码指令,这些指令是无法直接在计算机上运行的,因为计算机只能识别机器码,而Java虚拟机就负责将字节码转换成机器码从而让电脑识别,这个过程被称为解释,相当于将一门语言翻译成另一门语言。

2023-10-11 20:41:35 453

原创 【SpringCloud】Nacos的安装、Nacos注册、Nacos服务多级存储模型

在nacos的配置文件中,有一个端口号的设置,若端口8848已被占用,可更改其他端口号

2023-10-10 20:08:34 358 2

原创 【SpringCloud】Ribbon负载均衡原理、负载均衡策略、饥饿加载

在order–service中的OrderApplication类中,定义一个新的IRule:@Bean配置文件方式:在order–servicel的application.yml文件中,添加新的配置也可以修改规则:ribbon:NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则。

2023-10-09 21:22:24 587

原创 【SpringCloud】Eureka原理分析、搭建Eureka服务、服务注册、服务发现

eureka中有一个eureka-server(注册中心)和作为eureka-client(eureka客户端)的服务消费者和服务提供者,其中服务提供者在启动时会把自己的信息注册给eureka-server,每一个服务启动时都会进行注册操作,此时,若有服务消费者想要获取一个服务,就可以从eureka注册中心中找,服务消费者将自己需要的服务发给注册中心,注册中心就会返回对应的服务信息,但服务提供者可能是一个集群,那么注册中心返回的结果可能是多个,这时可以采用负载均衡的算法挑出一个,然后发起远程调用的请求。

2023-10-08 20:39:16 936 1

原创 【力扣刷题】两数求和、移动零、相交链表、反转链表

这道题可以通过利用Set集合的特性进行求解,分析题目可以看出是要我们在两个单链表中找出两个链表开始相交时的节点,那么我们就可以先将一个链表存入Set集合,再遍历第二个链表利用Set集合的contains()方法判断当前集合中是否包含第二个集合的节点,若包含,则直接返回当前节点,不包含则继续遍历,遍历完仍未找到,则返回null。

2023-10-07 21:06:20 656

原创 【数据结构】单链表代码实现

链表为空:返回空链表非空:定义一个节点变量指向头,再通过这个变量遍历链表,当当前节点的下一个节点为空时,表示此节点为最后一个节点,返回当前节点/*** 找最后一个节点* @return 返回最后一个节点*/= null) {

2023-10-06 16:20:31 146

原创 【SpringCloud】认识微服务

分布式架构是将一个项目中的不同的需求拆分成了多个模块,每个模块都可以独立开发,互不影响,各个模块最终一起部署,降低了代码的耦合度,但如果项目的需求有很多个,就需要大量的模块,模块数量变多,最终部署的时候就会变得很复杂,再拆分的过程中也会有很多问题,由于拆分好的服务为了保证高可用,还需要集群,与单体架构相比,分布式架构中的某个模块需要另一个模块的提供的信息时不能像单体架构那样直接调用。

2023-10-05 21:34:21 724 1

原创 【Vue】Vue快速入门、Vue常用指令、Vue的生命周期

HTML标签上带有Vs前缀的特殊属性,不同指令具有不同含义。例如:V-if,V-for…

2023-10-04 20:38:23 318

原创 【数据结构】HashSet的底层数据结构

在哈希表中,最重要的是哈希值,哈希值就是对象的整数表现形式,HashSet 在存数据的时候,会根据数组长度和哈希值计算出要存入的位置,哈希值是根据hashCode()方法计算出来的int型的整数,hashCode()方法定义在Object类中,所有对象都可以调用,默认使用地址值进行计算,一般情况下,自定义的对象都要重写hashCode()方法,利用对象内部的属性值计算哈希值。

2023-10-03 11:11:14 3822

原创 【操作系统】进程同步与进程互斥

进程具有异步性的特征。异步性是指,各并发执行的进程以各自独立的、不可预知的速度向前推进。读进程和写进程并发地运行,由于并发必然导致异步性,因此“数据”和“读数据”两个操作执行的先后顺序是不确定的。而实际应用中,又必须按照“写数据→读数据”的顺序来执行的,如何解决这种异步问题,就是“进程同步”所讨论的内容。同步亦称直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而产生的制约关系。进程间的直接制约关系就是源于它们之间的相互合作。

2023-10-02 20:51:40 395

原创 【Spring底层原理】BeanFactory的实现

BeanFactory是通过一个DefaultListableBeanFactory来实现的,首先要创建一个DefaultListableBeanFactory的实例对象,创建好后,就作为一个核心的spring容器,此时容器中还没有bean* 这时需要创建bean的定义,主要是描述bean的特征,包括类型,scope(单例、多例),是否有初始化方法和销毁方法,根据这些描述信息就能知道bean有哪些特点,并根据这些描述信息将bean创建出来bean的定义通过`BeanDefinitionBuild

2023-10-01 21:48:55 520 1

原创 【操作系统】调度算法的评价指标和三种调度算法

由于早期的CPU造价极其昂贵,因此人们会希望让CPU尽可能多地工作CPU利用率:指CPU“忙碌”的时间占总时间的比例。利用率 = 忙碌的时间 / 总时间`Eg:某计算机只支持单道程序,某个作业刚开始需要在CPU上运行5秒再用打印机打印输出5秒,之后再执行5秒,才能结束。在此过程中,CPU利用率、打印机利用率分别是多少?

2023-09-28 20:43:02 2489

软件工程题库2023年

软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。 软件生存周期的活动包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等活动。 对象模型:描述系统的静态结构,包括类和对象,它们的属性和操作,以及它们之间的关系。 动态模型:着重于系统的控制逻辑,考察在任何时候对象及其关系的改变,描述这些涉及时序和改变的状态,包括状态图和事件跟踪图。 功能模型:着重于系统内部数据的传送和处理。 衡量模块独立性的两个定性标准是内聚和耦合。 耦合是指对一个软件结构内不同模块彼此之间互相依赖(连接)的紧密程度;而内聚则标志一个模块内部各个元素彼此结合的紧密程度。 在我们的软件设计中,关于模块独立性我们追求的目标是紧密内聚松散耦合。

2023-12-20

空空如也

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

TA关注的人

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