自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux(centos7)下安装mariadb10详解

MariaDB 和 MySQL 之间存在紧密的关系。起源:MariaDB 最初是作为 MySQL 的一个分支而创建的。它的初始目标是保持与 MySQL 的兼容性,并提供额外的功能和性能改进。共同的代码基础:MariaDB 使用了 MySQL 的代码基础,并在此基础上进行了修改和扩展。因此,MariaDB 和 MySQL 在语法和功能上有很大的相似性,许多 MySQL 的应用程序可以直接在 MariaDB 上运行。

2023-07-13 00:23:05 1846

原创 Linux(centos7)下安装mariadb10详解

MariaDB 和 MySQL 之间存在紧密的关系。起源:MariaDB 最初是作为 MySQL 的一个分支而创建的。它的初始目标是保持与 MySQL 的兼容性,并提供额外的功能和性能改进。共同的代码基础:MariaDB 使用了 MySQL 的代码基础,并在此基础上进行了修改和扩展。因此,MariaDB 和 MySQL 在语法和功能上有很大的相似性,许多 MySQL 的应用程序可以直接在 MariaDB 上运行。

2023-07-13 00:16:21 813

原创 java密码加盐操作

密码加盐操作

2023-07-11 14:12:46 1253

原创 检测跟踪推理

【代码】检测跟踪推理。

2023-06-24 11:29:51 148

原创 C++处理表标注信息,放到对应的图片文件夹中

3.读取一个.\video文件夹下的一级子目录路径,将容器中的一个文件放入,读取下一个.\video文件夹下的一级子目录路径,将容器中的下一个文件放入,依次类推;2.将.\label文件夹下的所有txt文件挨个存放到容器中;1.采用windows api;

2023-06-23 09:55:33 60

原创 C++处理YTB faces 标注信息

其中, double name = std::stod(token.substr(token.find(L',') + 1));每行的第一的逗号后到第二个逗号间的字符转成double传进o_x变量,第三个逗号到第四个逗号间的字符转成double传进o_width变量,第二个逗号到第三个逗号间的字符转成double传进o_y变量,第四个逗号后的字符转成double传进o_height变量。3.创建上述结构体类型的数组;

2023-06-22 22:02:29 219

原创 C++处理YTB faces数据集标注文件

原来数据行:Aaron_Eckhart\0\0.555.jpg,0,237,137,84,84,0.0,1。删除每个txt文件每行的第一个逗号","及后面的第一个字符;现在数据行:0.555.jpg,237,137,84,84。删除每行文本中第二个\前的字符;删除每行的最后两个字符和两个;1.采用windows api;

2023-06-22 20:36:15 53

原创 C++处理YTB数据集(合并所有图片,处理标注信息)

原:Aaron_Eckhart\2\2.1732.jpg,0,165,80,32,32,0.0,1。现:2.1732.jpg,0,165,80,32,32,0.0,1。原:2.1732.jpg,0,165,80,32,32,0.0,1。现:2.1732.jpg,165,80,32,32。2.读取所有的txt中的标注信息到一个txt文件中;1.先将所有图片放到一个文件夹下;3.处理每行的txt文本信息;

2023-06-22 14:32:45 90

原创 C++处理YouTuBe Faces数据集(删除无用标注文件)

youtube faces数据集中,下载下来,发现frame_images_DB文件中的图片文件和TxT文本标注文件数量不一致,经查看,出现了许多空白表注文件;6.统计所有的video文件夹下的一级目录的数量;统计所有的txt文件数量对比是否一致;3.读取.\\video文件夹下所有一级目录的名称存到hashset中;4.读取.\\1文件夹中的所有txt文件名称,且只取第一个.号前的字符;1.将所有的图像文件复制到工程目录下的video文件夹下;2.将所有的txt文件复制到工程目录下的1文件夹下;

2023-06-22 11:30:28 205

原创 C++读取文件夹下的子目录路径,以及读取文件夹下的图片并合并成视频

【代码】C++读取文件夹下的子目录路径,以及读取文件夹下的图片并合并成视频。

2023-06-19 21:38:50 401

原创 GEN回零调试

3.清除底层下位机的相关配置(以下文件中的配置全删除)一.根据motionstudio软件检测各部件完备;2.再将Gecat.xml配置文件放到输出目录下;1.首先加动态链接库的中的八个文件放入工作目录中;三.根据上述调试程序来调GTN中的回零程序。二.调试点位模式的CPP测试程序。4.在三个文件夹中加入新的配置。5.ethcat通讯初始化。

2023-06-16 14:38:21 468

原创 Spring事务的操作

Spring事务不回滚的原因 ,当出现异常时,在异常处进行了异常处理;按道理事务遇到异常时会自动回滚,但如果异常进行了处理就不会回滚,此时可以手动进行事务的回滚。4.调用类内部@Transactional方法。3.代码中使用try/catch处理异常。1.非Public修饰方法。2.timeout设置过小。面试题:Spring事务失效的场景?5.数据库不支持事务。操作方式一: 编程式事务。操作方式二:声明式事务。

2023-06-16 14:36:41 34

原创 Spring AOP

1.切面(类):指的是某一方面的具体内容,比如用户的登入判断就是一个“切面”,日志的统计记录也是一个“切面”;2.CGLIB:通过实现代理类的子类来实现动态代理,不能代理被final修饰类。前置通知:在实际要执行的方法调用之前执行的通知;异常通知:在目标方法抛出异常的之后执行的通知;环绕通知:在目标方法调用前后都执行的通知;后置通知:在目标方法调用之后执行的通知;返回通知:在目标方法返回时候执行的通知;3.通知(方法具体实现代码):执行AOP的逻辑业务;2.切点(方法):定义一个拦截规则;

2023-06-01 15:41:31 507

原创 MyBatis查询数据库

对于JDBC来说,整个操作非常的繁琐,我们不但要拼接每一个参数,而且还要按照模板代码的方式,一步步的操作数据库,并且在每次操作完,还要手动关闭连接等,而所有的这些操作步骤都需要在每个方法中重复书写。于是我们就想,那有没有一种方法,可以更简单、更方便的操作数据库呢?答案是肯定的,这就是我们要学习MyBatis的真正原因,它可以帮助我们更方便更快速的操作数据库。简单来说MyBatis是更简单完成程序和数据库交互的工具,也就是更简单的操作和读取数据库工具;1.创建数据库连接池DataSource。

2023-05-06 16:01:37 896

原创 反射、枚举

java基础之反射

2023-05-01 15:45:32 949

原创 SpringMVC程序开发

a.使用maven项目添加SpringMVC框架的方式创建--> 复杂,麻烦。b.使用SpringBoot来创建SpringMVC项目。3.1获取单个的参数。1.创建SpringMVC项目。

2023-05-01 13:33:56 49

原创 Spring Boot 日志文件

记录用户的行为,做数据分析;默认为Info日志,只有大于info级别的才会打印;a.设置日志的保存路径(默认Spring.log)fatal无法操作,其他五种都是可操作的;日志文件一旦产生就会永久保存。b.设置日志的保存名称(可以加上路径)使用日志对象提供的方法打印日志;a.程序运行日志(存放在文件中)b.业务日志(存放在数据库中)a. 添加lombok依赖。b.在类上加@slf4j。5.日志的持久化(将日志保存下来)7.更简单的打印日志。2.日志的自定义打印。

2023-04-23 15:49:08 68

原创 对于Spring Boot中约定大于配置的理解

理解:SpringBoot的约定大于配置,按我的理解是:对比SpringMVC,需要在web.xml里面配置前端控制器,还需要在核心配置文件(*-servlet.xml)中配置视图解析器啥的,更要配置第三方的Tomcat服务器。概述:约定大于配置就是一种开发原则,就是为了减少人为的配置,能使用默认配置就使用默认配置,默认配置其实就是所谓的“约定”。这就是SpringBoot的优势,在传统所需要配置的地方,SpringBoot都进行了约定(配置好了),开发人员能配置得更少,更直接地开发项目,写业务逻辑代码。

2023-04-21 17:16:06 468 1

原创 Spring Boot的配置文件

若两种配置文件配置了同一个属性,以前者为优先级;但是多数公司会规定使用某一种,使得技术上统一,避免相同相同项的数据覆盖;输入encoding配置,以下配置好后,需将之前的properties文件删掉,重建才起作用;因为现在系统对于idea是有缓存的,关闭后重启,缓存释放了,会出现乱码,所以要配置编码。优:系统默认的配置文件;配置项的优先级比yml高;基本语法:key: value(注意冒号后的空格);优点:易写易读,类似JSON语言;不同平台的配置文件,各平台拥有一个配置文件,配置文件的名称是有要求的;

2023-04-21 16:28:02 113

原创 Spring Boot初识

此处用的时idea专业版;控制台打印了启动所用的时间,并且debug没有中断,说明spring boot项目已经创建好了;网页版生成SpringBoot项目包,并下载到本地,备份项目包可以随时加载到项目中;支持更多的监控指标,可以更加容易且直观观察到项目的运行情况;通过idea创建:专业版无需安装插件;抛弃繁琐的XML:可以直接使用注解的方式进行开发;可以快速的部署项目:不依赖任何的web容器;快速的集成框架:快速的添加外部的Jar包;内置了运行容器Web框架:可以直接运行;

2023-04-19 15:20:28 35

原创 Bean作用域和生命周期(+lombok安装)

请求作用域(request):每次http请求会创建新的Bean实例,适用于Spring MVC;通常无状态的Bean使用该作⽤域。⽆状态表示Bean对象的属性状态不需要更新;会话作用域(session):每次session会话共享bean,适用于Spring MVC;启动容器——跟据配置完成Bean的初始化——注册Bean对象到容器中——装配Bean的属性。原型模式(prototype):每次对该作⽤域下的Bean的请求都会创建新的实例;1.Bean作用域的定义:Bean在Spring容器中的行为模式。

2023-04-18 13:40:22 48

原创 Spring 更简单的读取和存储对象2

缺点:没办法实现final修饰的变量注入;缺点:不可注入不可变即final修饰的变量;使用setter注入的对象可能会被修改;优点:可注入不可变对象(final修饰的对象可以直接赋值,也可以在构造方法里赋值);对象注入(依赖装配):更加简单的读取Bean(是从Spring容器中读取某个对象,放到当前类中)注入的对象不会被改变(构造方法只能执行一次);构造方法注入可保证注入对象完全被初始化;@Resource注入,不支持构造方法注入。@Autowired注入,不支持重命名;3.构造方法注入(官方推荐)

2023-04-14 13:10:02 48

原创 更加简单的存储Bean对象

在component-scan下的所有子包的类(包不同名),只要加了五大类注解,就能存储到Spring中;五大类注解之间的关系:其他四个都是Component的子类,都是Component的扩展;@Service:服务,编排和调度具体执行方法的;即使在component-scan包下,没有加五大类注解,也不可以运行;五大类注解可以不在component-scan包下码?就是为了让用户看到注解后,望文生义,知道当前类的用途;@Component:组件,工具类。1.添加类注解存储Bean对象(五大类)

2023-04-10 21:46:17 35

原创 Spring中bean对象的存储与读取

其中 BeanFactory 提供了基础的访问容器的能力,而 ApplicationContext 属于 BeanFactory 的⼦类,它除了继承了 BeanFactory 的所有功能之外,它还拥有独特的特性, 还添加了对国际化⽀持、资源访问⽀持、以及事件传播等方面的支持。1)ApplicationContext 是⼀次性加载并初始化所有的 Bean 对象,并存储到spring容器中,而BeanFactory 是需要那个才去加载那个,即执行到getBean才加载,因此更加轻量,是惰性加载。

2023-04-09 20:57:55 131

原创 Spring项目的创建及环境配置

用vscode打开settings.xml 配置国内源(若没有,直接复制粘贴下面文件链接: https://pan.baidu.com/s/10QwHqeEdZx2udddEgdEgxQ 提取码: 1209 )将下面路径下的文件全部删掉,防止之前加载的半成品影响此次加载。若有文件则不能直接删除,需要修改文件内容。首先创建maven项目。

2023-04-09 16:18:46 66

原创 Spring核心及设计思想

此时,我们只需要将原来由自己创建的下级类,改为传递的方式(也就是注入的方式),因为我们不需要在当前类中创建下级类了,所以下级类即使发生变化(创建或减少参数),当前类本身也无需修改任何代码,这样就完成了程序的解耦。一般情况下,我们会先构建Tire类,然后构建Bottom类,当Bottom中需要Tire时,在Bottom构造方法中new Tire,并初始化,同样的在构造车架类和车类;通过以上调整,采用注入的方式,无论底层类如何变化,整个调⽤链是不⽤做任何改变的,这样就完成了代码之间的解耦,使程序之间更加通用;

2023-04-09 14:36:53 61

原创 链表相加-

思路:创建一个ReverseList方法,然后将开头每个值相加,当和超过十时则进一,并加到链表下一个数上,最后将生成的链表进行反转;

2023-04-07 10:41:16 29

原创 链表中倒数最后k个结点

思路1:利用快慢指针,先让快指针走k步,然后双指针同时走,当快指针为null,返回满指针的结点;思路2:利用栈,将所有链表的结点放入栈中,再依次弹出k个数,弹出的同时组成链表;

2023-04-05 15:47:19 36

原创 判断链表中是否有环

思路:利用hash表的contains方法解决,将链表的结点依次放入hash表,并检查放入的节点是否存在过,若存在则有环;

2023-04-05 14:38:41 296

原创 【无标题】

思路:创建一个数组列表,将所有的链表放入数组中,将数组自动排序,再将数组返回成链表;

2023-04-05 14:01:52 30

原创 合并两个排序的链表

思路1:创建一个arrarylist数组,将两个表依次放进数组中,然后利用数组的Collections.sort(list);排序完再转为链表即可。思路2:创建一个链表头,利用while循环,将两个链表值一一对比,先指向值小的表,再对比,再指向,下述代码为思路2的实现方式。

2023-04-05 11:22:00 311

原创 链表中的节点每k个一组翻转

思路:利用栈的先进后出原理进行反转,根据k求出链表分为多少组,将每组的链表利用栈依次反转再拼接。

2023-04-04 21:53:09 48

原创 反转指定区域的链表题

思路:利用栈的先进后出原理解题,首先找到要反转区域的前一点pre,防止一开始就要反转,故需要创建一个表头,利用for循环将要反转的区域放入栈中,再利用while循环将栈中元素拼接到pre后面,再接上栈后元素;

2023-04-04 21:07:58 27

原创 jvm类加载及垃圾回收机制

首先就先从ApplicationClassLoader开始,但是其并非真正加载,而是交给父亲,这时进行到ExtensionClassLoader,也不是真正加载,也是交给父亲,进行到BootStrapClassLoader,这个类加载器也想先给父亲,可父亲为null,就由自己加载,搜索标准库中的类去加载,若没找到,就交由子类去加载,最终又返回到ApplicationClassLoader,若还没找到,就会抛出类找不到的异常;缺点是内存碎片问题,被释放的空间是零散的,不是连续的;

2023-04-03 15:04:08 161

原创 JVM执行流程及运行内存情况

程序计数器是一块比较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器。如果当前线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;虚拟机栈是给java代码使用的栈,整个栈空间内部包含很多元素,(每个元素表示一个方法),每个元素称为一个”栈帧“,其中包括这个方法的入口地址,参数,返回地址......而堆,是整个jvm上空间最大的区域,new出来的对象都是在堆上,类的成员变量也是在堆上;数据结构的栈是一个通用的,广泛的概念,而此处的栈指jvm上的一块内存空间;

2023-04-02 20:06:24 80

原创 linux上java web部署

在linux系统中通过cd进入tomcat中的webapps目录下,并将war包拖入即可,如拖拽报错,记得yum install lrzsz。若是端口被进程占用,可以通过netstat -anp | grep ... 来看看被哪个进程占用;netatat -anp | grep mysql查看linux中mysql的端口号,并修改代码。如果启动不成功,可以看Logs目录的报错,使用vim打开看看,挑日志大的看;本地数据库,端口号,用户名,密码 和云服务器的数据库可能是不同的。

2023-03-31 14:15:34 95

原创 linux环境搭建(linux上部署java web)

2)unzip apache-tomcat-8.5.87.zip(unzip找不到 就cd.. 后 yum install unzip)后再执行。1)yum list | grep [关键词] ( | 叫做管道,含义为将第一个命令的输出作为第二个命令的输入)1)将从官网下载的apache-tomcat-8.5.87.zip 版本的压缩包直接拖进相应linux目录中。3) cd apache-tomcat-8.5.87进入目录(可能不存在则直接执行步骤4)yum管理器中的版本太老,需手动安装。

2023-03-31 10:19:05 148

原创 linux操作(基于Xshell + centos 7)

复制+粘贴 : cp 源 目标(拷贝目录+ -r)查看根目录下文件: ls / (蓝色的是目录,浅蓝色的快捷键,白色的是文件)退出为 :冒号+q (退不出来按五下esc再操作:q) (保存退出 wq)复制:CTRL+insert 粘贴 :shift + insert。写文件和修改文件: echo (>为重定向覆盖,>> 为拼接)查看更详细的目录内容: ls -l / 或者 ll /删除目录/文件:rm (删除目录后面要加上 -r)进入文件内部查看:vim + 文件名。

2023-03-30 21:01:22 117

原创 HTTPS

故而需要在连接的时候双方协商确定这次的密钥是啥,协商的同时也需要加密协商,不能明文传输,但是要想对密钥进行对称加密, 就仍然需要先协商确定一个 "密钥的密钥". 这就成了 "先有鸡还是先有蛋" 的问题了. 此时密钥的传输再用对称加密就行不通了.就是在客户端和服务器传输对称密钥时,黑客介入了,相对于客户端,黑客充当假的服务器,对于服务器,黑客充当假的客户端;服务器的公钥大家都知道,但是数据经过公钥加密后,不能利用公钥解密,只能用服务器生成的私钥解密,故而就算加密好的数据被黑客拿到也没什么用;

2023-03-28 15:09:20 35

原创 http协议

Header: 请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;POST 请求的特点 :首行的第一部分为 POST URL 的 query string 一般为空 (也可以不为空) header 部分有若干个键值对结构. body 部分一般不为空. body 内的数据格式通过 header 中的 Content-Type 指定. body 的长度由 header 中的 Content-Length 指定.[3]:get是会被设计成幂等的(相同的输入得到的结果也是相同的),Post并不要求;

2023-03-28 13:55:11 65

空空如也

空空如也

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

TA关注的人

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