- 博客(180)
- 资源 (2)
- 收藏
- 关注

原创 数据结构——结构体总结
第二章 线性表线性表的动态分配顺序存储结构 P22#define int ElemType #define LIST_INIT_SIZE 100 //线性表存储空间的初始分配量#define LISTINCREMENT 10 //线性表存储空间的分配增量typedef struct{ ElemType *elem;//存储空间基址 int length;//当前长度 ...
2020-01-03 19:25:47
568
1
原创 在Linux上运行JMeter(非界面)
参考:查看文件类型:https://www.linuxprobe.com/files-tehre-fangfa.html华为云平台配置:jdk环境、jmeter环境。
2024-03-22 17:09:28
1228
1
原创 【Docker】狂神说
原因:环境配置不能跨平台方案传统方式:jar(开发人员)+ 部署(运维人员)解决方式:开发打包上线一套流程Docker的思想来源于集装箱JRE — 多个应用(容易引起端口冲突/配置错误/连接错误)— 原来是交叉应用的隔离:Docker核心思想,打集装箱,每个箱子都是互相隔离的Docker通过隔离机制可以将服务器利用到极致ES:Elasticsearch6搜索引擎,Kibana是它的可视化操作界面。
2024-02-28 14:05:01
1203
1
原创 idea结合git教程(拉取项目,提交代码,合代码等等)
文章目录拉取git项目提交(commit) 拉取(pull) 推送(push) 代码commitpull 或 push合代码不同分支合代码对单独一个文件进行代码合并操作拉取git项目File -> New -> Project from Version Control…然后点击clone,等待即可提交(commit) 拉取(pull) 推送(push) 代码有多种方式可以进行操作,文章中只列举一种多人合作分支:commit -> pull -> push,防止代码丢失
2022-04-23 10:47:32
22785
1
原创 【VirtualBox】VirtualBox的四种网络连接模式
VirtualBox的四种网络连接模式VB和VM连接模式对比Virtual BoxVMwareNATNATBridged AdapterBridged AdapterHost-only AdapterHost-only AdapterInternal区别简解通信方式 \ 连接模式NATBridged AdapterInternalHost-only Adapter虚拟机→主机√√×默认不能设置主机→虚拟机×
2021-11-22 10:12:05
2015
4
原创 【SpringBoot】整合MyBatis
参考文章:狂神说SpringBoot09:整合MyBatis结构搭建新建项目 new -》代码准备pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mave
2021-11-17 18:15:17
446
1
原创 【Linux】vim简介及安装
参考文章菜鸟Centos7下安装和配置vimvimvim简介Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。vim安装查看是否已经安装了vimrpm -qa|grep vim若出现以下结果,则为已经安装:vim-filesystem-7.4.629-8.el7_9.x86_64
2021-11-12 14:28:12
373
原创 【Linux】如何在文件中写入感叹号
使用单引号即可成功写入[root@localhost aimerTest]# echo "guess whaaaaat!!!" >> file1bash: !": event not found[root@localhost aimerTest]# echo "guess whaaaaat" >> file1[root@localhost aimerTest]# cat file1guess whaaaaat[root@localhost aimerTest]# echo
2021-11-11 18:01:26
1198
1
原创 【Linux】目录中 / 和 ~ 的区别
~~表示当前用户的主目录如root用户为 /root/若是非root用户,则为/home/下用户命名的用户//为根目录,即所有目录最顶层的目录,与登录的用户无关。示例下图为root用户登录:非root用户登录的时候:...
2021-11-11 16:36:40
1303
1
原创 【java】正则表达式
参考文章:菜鸟正则表达式定义正则表达式定义了字符串的模式可以用来搜索、编辑或处理文本并不限于某一种语言,但是每种语言中有细微的差别实例
2021-11-10 16:57:37
470
原创 【MySQL】锁
本文参考文章MySQL锁详解MySQL中的行级锁,表级锁,页级锁MySQL锁的分类锁类型概念优点缺点特点总结分类引擎支持行级锁(row-level locking)锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁减少数据库操作的冲突加锁开销大开销大,加锁慢;易出现死锁;锁定粒度最低,发生锁冲突概览最小,并发度最高共享锁、排他锁表级锁(table-level locking)锁定粒度最大的一种锁,表示对当前操作的整张表加锁实现简单,资源消耗较
2021-11-08 17:39:54
537
原创 【Java】反射 Reflection
反射 Reflection本文参考文章:Java内存区域划分java 堆栈,方法区(永久代)的理解引入动态编程语言:程序运行时,允许改变程序结构或变量类型从这个概念来看,Java不属于动态编程语言之类Java的一个突出的动态相关机制:Reflection反射概念运行状态中对于任意一个类,都能知道其所有属性和方法对于任意一个对象,都能够调用其任意一个方法Java反射功能类 对象 动态代理在运行时判断任意一个对象所属的类在运行时构造任意一个类的对象在运行时判断任意一
2021-11-05 18:09:51
106
1
原创 【MyBatis】CDATA标签和xml字符转义
<![CDATA[ ]]>标签XML 格式不支持解析 “&”、“<”、“>”等符号,这些字符在xml解析的时候会被转义,解决方法加上CDATA标签避免报错。在该标签内的语句,将不会被当成字符串来处理,而是直接当成sql语句;<![CDATA[ ]]>是xml语法,在<![CDATA[ ]]>内部的所有内容都会被解析器忽略,**不进行转义**在mybatis中像<if></if>这样的标签如果放在<![CD
2021-11-01 15:20:52
791
1
原创 【MySQL】时间格式转换 DATE_FORMAT函数篇
MyBatis时间格式转换截取年/月/日/时/分/秒-- 年DATE_FORMAT('2000-05-07', '%Y') -- 2000 (大写Y)截取年份全四位DATE_FORMAT('2000-05-07', '%y') -- 00 (小写y)截取年份后两位-- 月DATE_FORMAT('2000-05-07', '%m') -- 05 (小写m)DATE_FORMAT('2000-05-07', '%M') -- May (大写M)月的英文-- 日DATE_FORMAT('200
2021-10-29 11:54:12
13575
1
原创 【MyBatis】动态SQL中的参数判空
MyBatis动态SQL中的参数判空int<if test="id != null"> `SQL语句`</if>String<if test='strategyName != null and strategyName != ""'> `SQL语句`</if>数组<if test="object!=null and object.length>0"> `SQL语句`</if>集合<if
2021-10-29 10:16:03
3477
1
原创 【数据结构】线性表的链式存储结构
todo: 释放内存失败/*线性表链式存储结构*/#include <stdio.h>#include <stdlib.h> //pause 的头文件#include <time.h> // 使用当前时钟做种子#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define OVERFLOW -1#define INIT_LISTSIZE 5 //链表的初始数据分配量#defin
2021-09-09 09:17:02
195
原创 【数据结构】顺序存储结构
注意定义的函数的顺序,后面调用前面 不能前面调用后面/*顺序存储结构*/#include <stdio.h>#include <stdlib.h> //pause 的头文件#include <time.h> // 使用当前时钟做种子#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 20 //存储空间最大分配量#define LIST_INITSIZE
2021-09-09 09:13:34
277
原创 【算法】排序_基数排序
算法部分模板[排序名称]排序定义稳定性时间复杂度代码测试用例int arr[] = {2,4,3,1,6,5};原代码 运行结果[pic]第一次优化第一次优化:当第n次没有数据交换时,结束循环 运行结果[pic]第二次优化每次一发生交换时,记录交换的位置,下面在循环的时候,只需要比较到上次最后两两交换的位置即可 运行结果[pic]交换函数 扩展:异或运算...
2021-08-25 20:15:14
135
1
原创 【算法】排序_汇总篇
总览冒泡排序定义重复地走访过要排序的元素,依次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换 即该元素列已经排序完成稳定性冒泡排序是一种稳定排序算法时间复杂度O(N2)代码测试用例int arr[] = {2,4,3,1,6,5};原代码 /** * 普通冒泡排序 * 缺陷:耗时 每次都会无条件遍历 * @param arr * @param len arr.length
2021-08-25 19:58:31
252
1
原创 【算法】排序_计数排序
参考文章计数排序定义计数排序是一种特殊的桶排序计数排序是一种非比较性质的排序算法,元素从未排序状态变为已排序状态的过程,是由额外控件的辅助和元素本身的值决定的。计数排序过程中不存在元素之间的比较和交换操作。根据元素本身的值,将每个元素出现的次数记录到辅助空间后,通过对辅助空间内数据的计算,即可确定每一个元素最终的位置稳定性稳定时间复杂度O(N+K) K为数值范围步骤根据待排序集合中最大元素和最小元素的差值范围,申请额外控件遍历待排序集合,将每一个元素出现的次数记录到元素值对应
2021-08-24 21:25:13
99
1
原创 【算法】排序_桶排序
参考文章桶排序(箱排序)定义桶排序的工作原理是将数组分到有限数量的桶中,每个桶再个别排序有可能使用别的排序算法或者以递归方式继续使用桶排序进行排序稳定性稳定时间复杂度平均时间复杂度:O(N + C)C = N * (logN-logM)N为待排数据,M为桶数量当N=M时,最好效率达到O(N)适用场合两个必要条件:最大最小值相差较大数据分布均匀,否则可能将数据集中到同一个桶中,便失去了桶排序的意义过程分析桶排序的基本思想:把数组arr划分为n个大小相同的子区间(桶),每个
2021-08-24 20:39:16
131
1
原创 【算法】排序_堆排序
堆排序定义堆排序是利用堆这种数据结构所设计的一种排序算法。堆是一种近似完全二叉树的结构,并同时满足堆积的性质:子结点的键值或索引总是小于(或者总是大于)它的父结点子结点的键值或索引值总是小于其父结点:大根堆子结点的键值或索引值总是大于其父结点:小根堆稳定性不稳定时间复杂度O(N*logN)建堆方法HeapInsert 上浮描述假定事先不知道有多少个元素,通过不断往堆里面插入元素进行调整来构建堆步骤增加堆的长度,在最末尾的地方加入最新插入的元素比较当前元素和它的父结点值,如果
2021-08-23 18:25:37
260
1
原创 【算法】排序_快速排序
算法部分模板快速排序定义基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分分别进行快速排序,整个排序过程可以递归进行,以达到整个数据变成有序序列稳定性不稳定时间复杂度O(N * logN)代码测试用例int arr[] = {2,4,3,1,6,5};原代码 /** * 快速排序 * @param arr * @param len */ publi
2021-08-19 15:22:50
108
1
原创 【算法】排序_归并排序
归并排序定义归并排序是采用分治法的一个非常典型的应用,将已有序的子序列合并,得到完全有序的序列,即先使每个子序列有序,再使子序列段间有序若将两个有序表合并成一个有序表,称为二路归并稳定性稳定时间复杂度O(N*logN)代码测试用例int arr[] = {2,4,3,1,6,5};原代码 /** * 归并排序(重载) * 为了创建临时数组 完成数组的复用 * * @param arr 无序数组 */ public st
2021-08-16 17:40:50
185
2
原创 【算法】排序_直接插入排序及其 优化(希尔排序)
插入排序定义插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的,个数加一的有序数据,直到全部插入完为止。适用于少量数据的排序稳定性稳定时间复杂度O(N2)代码测试用例int arr[] = {2,4,3,1,6,5};原代码 /** * 直接插入排序 * @param arr * @param len arr.length */ public static void insertSort(int[]
2021-08-13 18:12:36
123
1
原创 【算法】排序_选择排序及其优化
选择排序定义从待排序的数据元素中选出最小(或最大的一个元素),存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为0.稳定性不稳定时间复杂度O(N2)代码测试用例int arr[] = {2,4,3,1,6,5};交换函数 /** * 交换函数 * @param arr * @param i * @param j */ public
2021-08-12 15:36:37
132
1
原创 【算法】排序_冒泡排序及其优化
冒泡排序定义重复地走访过要排序的元素,依次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换 即该元素列已经排序完成稳定性冒泡排序是一种稳定排序算法时间复杂度O(N2)代码测试用例int arr[] = {2,4,3,1,6,5};原代码 /** * 普通冒泡排序 * 缺陷:耗时 每次都会无条件遍历 * @param arr * @param len arr.length
2021-08-11 15:16:19
120
1
原创 【SpringBoot_ANNOTATIONS】组件注册 04 @Scope 设置组件作用域
组件注册 04 @Scope 设置组件作用域参数详解常用prototype:多实例singleton:单实例不常用request:同一次请求创建一个实例session:同一个session创建一个实例示例单例模式(默认情况)配置类@Configurationpublic class MainConfig2 { // 由于容器中已经有了一个名为"person"的bean, 所以如果再注入"person"的时候会报错 需要修改下注入的bean的名称 // 不写scope的
2021-08-06 09:47:23
126
原创 【SpringBoot_ANNOTATIONS】自动装配 05 @Profile环境搭建
自动装配 05 @Profile环境搭建@Profile:Spring为我们提供的可以根据当前环境动态的激活和切换一系列组件的功能 也可以根据环境切换数据源devtestprov@Profile:指定组件在哪个环境的情况下才能被注册到容器中,不指定的时候任何环境下都能注册这个组件加了环境标识的bean 只有这个环境被激活的时候才能注册到容器中。写在配置类上,只有是指定的环境的时候,整个配置类中的所有配置才能开始生效没有标注环境标识的bean,任何环境下都是加载的。默认是default
2021-08-06 09:43:19
126
原创 【SpringBoot_ANNOTATIONS】自动装配 04 Aware 注入Spring底层组件 & 原理
自动装配 04 Aware 注入Spring底层组件 & 原理总接口:Aware自定义组件想要使用Spring容器底层的一些组件(ApplicationContext BeanFactory 等等)需要让自定义组件实现xxAware接口:在创建对象的时候会调用接口规定的方法注入相关组件 总体参照 Aware 接口 ,把Spring底层一些组件注入到自定义的bean中xxxAware功能:使用xxProcessor 如ApplicationContextAware ==》 Applica
2021-08-06 09:42:36
111
原创 【SpringBoot_ANNOTATIONS】自动装配 03 方法 构造器位置的自动装配
自动装配 03 方法 构造器位置的自动装配@Autowired的位置:构造器 方法 参数 属性 都是从容器中获取参数的值方法上:Spring容器创建当前对象就会调用此方法 完成赋值方法使用的参数 自定义类型就会从ioc容器中获取构造器上: 构造器要用的组件都是从容器中获取若bean中只有一个有参构造方法,@Autowired注解可以省掉,默认会调用这个参数位置的组件还是会从ioc容器获取参数上:@Bean + 方法参数:默认不写@Autowired ,也能自动装配 也是从ioc容器
2021-08-05 15:16:03
205
原创 【SpringBoot_ANNOTATIONS】自动装配 02 @Resource & @Inject
自动装配 02 @Resource & @InjectSpring还支持使用@Resource 属于JSR250 和 @Inject 属于JSR330@Resource & @Inject 属于java规范的注解@Autowired 属于Spring的注解@Resource可以和@Autowired一样实现自动装配功能,默认是按照组件名称装配的没有能支持@Primary 或者 @Autowired(required = false) 或者@Qulifier@Servic
2021-08-05 15:02:07
95
原创 【SpringBoot_ANNOTATIONS】自动装配 01 @Autowired & @Qualifier & @Primary
自动装配 01 @Autowired & @Qualifier & @Primary自动装配:Spring利用依赖注入(DI),完成对IOC容器中各个组件的依赖关系赋值常用@Autowired默认优先按照类型去容器中找对应的组件若ioc中有多个同类型的bean,再将属性名称作组件id去容器中查找(会报错 )也可以使用 @Qualifier("[beanName]")来指定注入bean,这种情况下可以存在相同类型的多个bean‘如果没有bean,会报错 自动装配默认
2021-08-05 15:00:54
145
原创 【SpringBoot_ANNOTATIONS】属性赋值 02 @PropertySource赋值
属性赋值 02 @PropertySource赋值使用@PropertySource读取外部配置文件中的 k-v 保存到运行的环境变量中加载完外部的配置文件以后 使用${}取出配置文件中的值配置类package com.example.annotations.config;import com.example.annotations.bean.Person;import org.springframework.context.annotation.Bean;import org.spring
2021-08-05 14:57:22
224
原创 【SpringBoot_ANNOTATIONS】属性赋值 01 @Value赋值
属性赋值 01 @Value赋值传统方式public class Person { private String name; private Integer age; private String nickName; public Person() { } public Person(String name, Integer age, String nickName) { this.name = name; this.a
2021-08-05 14:37:15
179
原创 【SpringBoot_ANNOTATIONS】生命周期 04 BeanPostProcessor 后置处理器
生命周期 04 BeanPostProcessor 后置处理器BeanPostProcessor是一个接口:bean的后置处理器在bean初始化前后进行一些处理工作postProcessBeforeInitialization:初始化之前调用postProcessAfterInitialization:初始化之后调用自定义后置处理器package com.example.annotations.bean;import org.springframework.beans.BeansExcept
2021-08-05 14:36:02
130
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人