- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 springboot读取系统环境变量
springboot可以使用${}读取环境变量,利用这种特性,可以将数据库的url,user,password敏感信息进行隐藏.即:向系统添加环境变量DB_HOST(数据库ip+端口),DB_USER(数据库用户),USER_PASSWORD(数据库密码).在springboot配置文件中使用DBHOST{DB_USER},${DB_PASSWORD}替换原有配置.从而实现保护敏感信息,防止泄露数据库所在服务器以及数据库账号密码.
2024-11-05 13:03:28
1953
原创 若依分页查询合理化分析
若依自动设置分页的reasonable参数为true,导致PageHelper会对pageNum进行合理化处理,当其超过实际的页数后返回,修改pageNum为最后一页,返回最后一页的数据.如果希望超过最大页数返回空数组,那么可以在前端传入reasonable参数,将其值设置为false,从而不进行pageNum的合理化修改.
2024-10-31 12:59:33
372
原创 若依分页查询原理
startPage()调用后只会在其后面执行的一句sql生效,后续sql不在执行分页操作.建议在startPage()方法紧靠分页结果的sql前,不要不管方法立有几个sql语句上来就加startPage()方法放在最前面。
2024-10-30 23:33:50
1180
原创 韩顺平零基础学Java 击中第一个坦克不爆炸问题
原因在与读取图片的api有问题,看不懂底层实现,只知道debug的时候,在子弹击中第一辆坦克前,读片数据并没有读取到Image变量中.而在击中第一辆坦克后,有莫名其妙的把图片数据加载到image变量中.1.既然使用Toolkit第一次没有加载数据,先在paint方法中调用一次drawImage方法,把三张图片都画一遍.这样子弹打坦克的时候,就能正常显示保障效果.但是第二辆,第三辆都有爆炸效果.而去掉断点放行,用子弹击中第一辆坦克后,继续打断点,再次查看images中的数据,能够看到加载的图片。
2024-06-18 23:15:10
332
原创 ArrayList的扩容机制
注意:没有缩容机制.移除元素时,只是修改size值以及把原有的元素的引用值指向null2.当创建ArrayList对象时,如果使用的是无参构造器,则初始elementData的容量为0,第一次添加(调用add方法),则扩容elementData为10,如果需要再次扩容则扩容elementData容量的1.5倍3.如果使用的指定大小的构造器,则初始elementData容量为指定大小,如果需要扩容,则直接扩容elementData容量的1.5倍.
2024-05-23 23:12:06
1434
原创 Java StringBuffer与StringBuilder扩容
查看代码可以发现str=null时其实相当于append(“null”);因此只讨论str!
2024-05-16 22:45:08
646
1
原创 SpringBoot集成Mybatis可能会遇到的问题
SpringBoot之集成Mybatis踩的各种坑0.概述使用SpringBoot集成Mybatis曾经踩了各种坑,也花费了很久找解决方案才把坑填上.只是时间久了,很容易健忘,导致过一段时间就会出现,遇到同样的问题还是不得不花费时间去找解决方案.所以索性就一次把错误犯个遍,写一遍文章记录一下.1.项目构建使用SpringBoot搭建项目,由于是测试mybatis出现的错误,因此引入可以不引入web依赖.pom.xml<?xml version="1.0" encoding="UTF-8"?
2022-03-14 11:17:15
1870
原创 Lua学习
Lua学习参考视频链接:https://www.bilibili.com/video/BV1tf4y1V747\1.开发环境搭建需要的开发环境:Lua/SCITE,安装参考菜鸟教程Lua2.基本语法2.1注释单行:–多行:–[[ --]]2.2 标识符命名规则与其他原因大差不差,具体参考菜鸟教程Lua2.3 基本数据类型2.3.1 nil未初始化的变量的取值.删除变量.将该变量的值设置为nil,即为删除条件判断中可作为false2.3.2 boolean值为true/fa
2022-02-15 14:16:27
198
原创 尚硅谷Redis6基础教程-秒杀案例中库存遗留问题
尚硅谷redis6基础教程中视频24-27的秒杀案例,使用Redis乐观锁解决了超卖问题,但是也产生了库存遗留问题.引入Lua脚本,解决了超卖和库存遗留.Lua脚本为什么解决了库存遗留问题???
2022-01-13 14:19:12
707
5
原创 java异常
Throwable体系结构:成员方法:方法名说明public String getMessage()返回此throwable的详细信息字符串public String toString()返回此可抛出的简短描述public void printStackTrace()把异常的错误信息打印到控制台代码示例:public class ExceptionDemo02 { public static void main(String[] args) {
2021-12-31 15:53:03
237
原创 SpringMVC
SpringMVC框架第一章 SpringMVC概述1.1SpringMVC基本说明SpringMVC基于Spring,是Spring中一个模块,做web开发用的。SpringMVC叫做SpringSpring Web MVC,说明它使用Spring的核心技术,zuoweb开发。SpringMVC内部使用mvc架构模式。SpringMVC是一个容器,管理对象的,使用IOC核心技术。SpringMVC管理界面层中的控制器对象SpringMVC底层也是Servlet,以Servlet为核心,接收请求,
2021-10-15 15:24:12
227
原创 Spring
Spring学习第一章 Spring概述1.1 什么是SpringSpring是2003年兴起的一个轻量级的Java开发框架,它是为了解决企业应用开发的复杂性而创建的。Spring的核心是IOC(控制反转)和AOP(面向切面编程)。Spring是可以在JavaSE/EE中使用的轻量级开源框架。Spring的主要作用是为代码解耦,降低代码间的耦合度。就是让对象和对象(模块和模块)之间关系不是按代码关联,而是通过配置来说明。即在Spring中说明对象(模块)关系。总结:Spring是一个用java开发
2021-10-12 14:19:33
350
原创 MyBatis
Mybatis第一章 框架的概述1.三层架构mvc: web开发中使用mvc模式。m:数据;v:视图;c:控制器c控制器:接收请求,调用servlet对象,显示请求处理的结果,当前使用servlet作为控制器v视图:目前使用jsp,html,css,js.显示请求的处理结果,把m中数据展示出来m数据:来自数据库mysql,来自文件,来自网络。mvc作用:实现解耦合让mvc各司其职使得系统扩展更好三层架构:界面层(视图层):接收用户的请求,调用service,显示请求的处理结果的
2021-10-12 14:18:42
261
原创 稀疏数组使用
稀疏数组情景对于五子棋棋局的保存可以使用二维数组array[][];array[row][col]=0,表示该处没有棋子;array[row][col]=1,表示该处为白子;array[row][col]=2,表示该处为黑子。问题分析但是往往棋盘上很多地方没有落子,导致二维数组存储了大量的无意义数据。那么如何改进,减少存储呢?解决当数组中存在大量的重复值时,可以使用稀疏数组减少内存占用。处理思路:以二维数组arr[4][4]为例:0000012000
2021-10-02 22:02:23
87
原创 数据结构概述
数据结构概述基本概念数据结构包括线性结构和非线性结构线性结构1)数据结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系2)线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构。顺序存储的线性表成为顺序表,顺序表中存储的元素是连续的3)链式存储的线性称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息4)线性结构常见的有:数组,队列,链表和栈非线性结构包括:二维数组,多维数组,广义表,树结构,图结构。...
2021-10-01 21:15:31
91
原创 SQL Network Interfaces,error: 50-发生了LocalDatabase Runtime
Visual Studio连接数据库出现“SQL Network Interfaces,error: 50-发生了LocalDatabase Runtime”新装的vs2019,不能给项目添加本地数据库。
2021-08-08 23:55:08
613
原创 java基础五-数组
1.一维数组数组是具有相同类型数据地有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中每一个数据称作一个元素,每个元素可以通过一个索引(下标)访问他们。数组的三个基本特点:1、长度是确定的。数组一旦被创建,它的大小就是不可以改变的。2.其元素必须是相同类型,不允许出现混合类型3.数组类型可以是任何数据类型,包括基本类型和引用类型。数组声明有两种:type[] arr_name;type arr_name[];注意事项:1.声明的时候并没有实例化任何对象,只有
2021-07-13 15:17:47
237
原创 Java基础四-面向对象三大特征,抽象类,接口与内部类
面向对象的三大特征是:继承,封装和多态。1.继承继承使类的扩展更加容易,实现了代码的重用,编程中使用extends实现继承。要点:1.父类也被称为超类,基类派生类等2.java类中没有多继承,接口有多继承3.子类继承父类,可以得到父类全部属性和方法(除了父类的构造方法),但不见得可以直接访问(比如父类的私有属性和方法)4.如果一个类定义使,没有调用extends,则它的父类是java.lang.Objectinstanceof:instanceof是二元运算符,左边是对象右边是类;当对象时
2021-07-13 09:29:53
366
原创 Java基础三-面向对象
1.面向对象与面向过程面向过程与面向对象都是软件分析,软件设计和开发的一种指导思想,指导人们以不同的方式去分析,设计和开发软件。面向过程思考问题时,思考考的是如何按步骤实现,将步骤对映成方法,一步一步直至完成。适用于简单任务,不需要过多协作的情况下。面向对象适合较为复杂需要很多协才能完成的任务。总之:1.二者都是解决问题的思维方式,都是组织代码的方式。2.解决简单问题使用面向过程3.对于复杂问题:宏观上使用面向对象把握,微观处理上仍然是,面向过程。2.类和对象类:class;对象:Objec
2021-07-12 23:09:35
97
原创 Java基础二——基本数据类型及语句
1.注释单行://;多行:/* /文档:/* */2.标识符标识符是用来给变量,类型,方法及包进行命名的规范:1.必须以字母,下划线,美元符号开头。2.其他部分可以是字母,下划线,美元符号$与数字任意组合3.Java标识符大小写敏感,长度无限制4.标识符不可以是Java关键字5.表示类名的标识符:每个单词首字母大写6.表示方法与变量的标识符第一个单词首字母小写,其余单词首字母大写(驼峰原则)注:Java不是用的ASCII字符集,而是采用Unicode字符集,所谓的
2021-07-10 21:52:51
176
原创 数组作为函数参数传递
数组作为函数参数传递数组作为函数参数传递时,传入的是数组首地址,并非数组本身。今天总算理解了这一点。写了一个打印数组元素的函数,代码如下:void print1(int arr[]) { int len = sizeof(arr) / sizeof(arr[0]); cout << sizeof(arr)<<endl; for (int i = 0;i < len;i++) { cout << arr[i] << " "; }}ma
2021-04-19 19:39:45
6061
原创 基于zk4500的指纹识别C#实现
河南大学指纹识别C#实现这是我第一个比较自己写的比较成功的应用(实在是自己太菜)。创新实践项目选的指纹识别,书上是用C++的MFC实现的,但是代码比着书上敲都能搞错,没办法,只能用比较熟悉的C#...
2021-04-18 14:42:13
2439
7
原创 C++指针
C++之初识指针指针是指向存储空间的变量,存储的是地址。指针的定义://1.定义一个指针 int a = 10; int* p = &a;//&取址操作;指针的理解:指针是存储内存地址的变量,因此指针变量的值即为对应存储空间的地址。//使用指针 cout << p << " " << *p << " " << &p << endl; cout << *(&
2021-04-17 23:18:22
103
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人