自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 redis结合lua实现秒杀

我们都知道秒杀是一个高并发,大量请求的场景,如果每次秒杀,我们都直接去操作数据库,校验库存,扣减库存,大量请求的话,数据库肯定扛不住,会出现各种问题。那怎么办?数据库虽然扛不住,但是redis能抗,所以我们可以使用定时任务,提前将秒杀商品的库存同步到redis中,每次秒杀请求,扣减redis中的库存,然后异步修改数据库的库存。

2023-03-27 19:00:00 831 1

原创 Lua脚本学习

Lua的基本知识学习

2023-03-21 20:00:00 1672

原创 MongoDB基本使用以及springboot整合MongoDB

MongoDB 是由 C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由key-value键值对组成。

2023-03-20 20:00:00 761

原创 Java递归实现抢红包,金额分配算法(Random)

递归实现红包分配,红包金额分配算法:每次分的金额是k为[1,2*m/n]之间的随机数,大部分抢红包程序都是按照这个比例算。当n>1并且m

2023-03-10 21:00:00 1170

原创 Linux之shell脚本

shell脚本的基础知识

2023-02-27 21:45:00 7078

原创 Spring Cloud Gateway的使用

spring cloud gateway的使用,实现webfilter过滤器进行接口权限校验

2023-01-06 19:30:00 230

原创 SpringSecurity实现登录和自定义权限认证

springboot整合SpringSecurity实现登录和自定义权限认证

2022-12-07 19:00:00 3861 4

原创 try/catch/finally的各种情况

众所周知,try语句报错,会执行catch语句,然后执行finally,以下这几种情况,看看会如何输出。

2022-11-22 19:30:00 1438

原创 树(二叉查找树BST、二叉平衡树AVL、红黑树R-B)

树(二叉查找树BST、完全二叉树、二叉平衡树AVL、红黑树R-B)的详细讲解和代码实现

2022-10-19 20:00:00 391

原创 WebSocket实现聊天室功能(springboot+vue3+vite)

WebSocket实现聊天室功能(springboot+vue3+vite)

2022-09-03 09:00:00 2646 4

原创 根据文件路径区分文件的所属类型,并返回对应类型的文件路径

区分文件的所属类型,并返回对应文件路径

2022-08-11 19:00:00 243

原创 自定义注解打印接口调用日志

spring boot自定义注解打印接口调用日志

2022-07-27 20:00:00 542

原创 springboot 生成二维码

生成二维码

2022-06-24 21:00:00 529 2

原创 springboot项目和vue项目从零开始在服务器上打包运行,并使用nginx代理,让外网访问

springboot项目和vue项目从零开始在服务器上打包运行,并使用nginx代理,使外网可以访问

2022-06-16 09:00:16 1819 7

原创 毕设项目--博客园系统

本文主要是介绍博主所做的毕设项目---博客园系统,本系统包括四个项目,一个后端依赖包、一个后端项目代码、一个前端前台项目和一个前端后台项目,这四个项目构成了完整的博客园系统,使用到springboot+mybatis-plus+mysql+redis+vue3。

2022-05-11 20:00:00 738

原创 接口权限控制(二)

1、简介之前写了一篇关于接口权限控制的文章,那篇文章主要是对用户进行管理,针对用户是否登录来判断是否可以调用接口,这种方式的局限性太大了,无法精确地进行接口控制,本文是在原来的方法上进一步的优化,做到了对每个接口进行权限管理,只有相应的角色才能调用该接口。...

2022-04-22 15:43:01 2277 7

原创 arrayList循环使用add()方法,再put进入map中,发现map中添加了重复值的问题

描述:下面的代码,按照逻辑来说,结果应该是:{0=[2],1=[2,3],2=[2,3,4],3=[2,3,4,5],4=[2,3,4,5,6]}。但其结果实际却是:{0=[2, 3, 4, 5, 6], 1=[2, 3, 4, 5, 6], 2=[2, 3, 4, 5, 6], 3=[2, 3, 4, 5, 6], 4=[2, 3, 4, 5, 6]}Map<Integer,List<Integer>> map = new HashMap<>();L

2022-03-01 15:05:29 2816 1

原创 leetcode5 最长回文子串

题目:给你一个字符串s,找到s中的最长回文子串。例子:输入:s = "babad",输出:"bab",解释:"aba"同样也是符合题意的答案。本文使用的是中心扩散法,原理是:从当前字符开始,向两边扩散查找,找到相同的字符,说明是回文子串,不同则不是回文子串。下面代码中有两个解法,解法二是解法一的改进版。话不多说,直接上代码:public class Main { public static void main(String[] args) { String s

2022-02-27 22:00:14 122

原创 java通过先序遍历和中序遍历获取树结构

java通过先序遍历和中序遍历获取树结构

2022-02-09 20:00:00 689

原创 解决项目打包后,在其他项目中引入该jar包,该jar中的@Configuration和@ControllerAdvice注解未生效问题

解决项目打包后,在其他项目中引入该jar包,该jar中的@Configuration和@ControllerAdvice注解未生效问题

2022-02-07 22:00:00 4611

原创 GIT的相关命令

首先创建一个文件夹,放入需要上传的项目中的内容,检查项目中是否有.gitignore文件,有的话,就不复制这个.gitignore文件,否者会报错,因为仓库中以及存在了这个文件,会冲突

2022-01-24 09:46:40 62

原创 接口权限控制(springboot)

spring的AOP实现权限控制

2022-01-21 19:00:00 6635 1

原创 归并排序实现(JAVA)

归并排序实现

2022-01-10 21:30:00 508

原创 Redis的安装与连接

虚拟机linux中redis的安装和运行,本机连接虚拟机中的redis以及java连接redis

2022-01-10 13:58:40 658

原创 java实现导出数据到excel表格

java实现导出数据到excel表格依赖 <!-- 表格导出--> <!--Excel--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.11&lt

2021-11-25 14:20:31 3337

原创 JAVA 实现在list<Entity>中修改其中某个实体里面的某个属性值

JAVA 从list中修改其中某个实体里面的某个属性值最近再写一个项目的时候,遇到了这个问题,就是想要修改一个list中的具体一个实体里面的一个属性值,解决方法如下:首先,创建一个索引,用于标识要改的地方,标识到了要改的地方后,就修改该实体里面的属性值,再将这个实体替换索引的位置即可。代码实现如下:...

2021-10-24 21:49:17 6443 1

原创 数据库中的三种时间类型

Date:显示年月日,范围是1000-01-01到9999-12-31DateTime:显示年月日时分秒,范围是1000-01-01 00:00:01到9999-12-31 23:59:59TimeStamp:显示年月日时分秒,范围是1970-01-01 00:00:00到2038-01-19 03:14:07TimeStamp,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。底层表示是时间戳。什么是时间戳?时间戳是指时间1970年01月01日00时00分00秒起至某一时

2021-09-26 09:32:44 3875

原创 将驼峰式名称自动全变成小写的并用下划线分割

只需要将下面的注解放在需要变得类上面即可,会自动将该类的所有属性都转变@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)

2021-09-26 09:26:49 327

原创 一个自己写的时间类,里面有时间类型转换、获取上周同期,根据日期推算当前周的开始日期等等功能

一个自己写的时间类,里面有时间类型转换、获取上周同期,根据日期推算当前周的开始日期等等功能具体的功能看注释import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * 日期计算 * * @author gcp */public class DateUtil { /** * Date类型转为String * * @param dat

2021-09-22 13:28:41 182

原创 Mybatis-plus学习笔记

mybatis-plus理解mybatis-plus相当于mybatis的加强版,主要增加了一个BaseMapper的接口,这个接口中拥有一些对数据库的基本操作,当需要对数据库进行一些基本的操作时,可以直接使用BaseMapper中的方法,这样可以减少很多对数据库进行操作的代码,使得代码更简洁。首先导入依赖(pom.xml) <!-- mybatis-plus--> <dependency> <groupId>com.

2021-09-01 18:03:27 183 5

原创 迭代器Iterator与ListIterator

迭代器Iterator与ListIteratorIteratorListIterator

2021-08-07 19:58:41 216

原创 Set、List、Map简析

Set、List、Map简介Set和List是Collection派生的两个子接口。Set特点:无序,元素唯一(不能重复)HashSet: 可快速查询TreeSet: 使用树结构,有序List特点:ArrayList: 随机访问,线程不安全LinkedList: 快速插入、删除Vector: 与ArrayList 类似 , 线程安全Map特点:无序,保存键值对,键不能重复,值可以重复HashMap: 线程不安全,允许键和值为空(null),默认长度为16,使用链地址法

2021-08-07 19:26:46 115

原创 String类中包含的实用函数

String类中包含的实用函数函数详情见下方代码注释,这里说一些需要注意的地方。首先,说一下字符如何反转,字符串反转使用到的是StringBuilder类里面的reverse() 方法,因此首先需要将String类型转化为StringBuilder类型 (点击查看String类型与StringBuilder类型的区别),然后使用到reverse()方法,之后再将StringBuilder转化为String。然后是length 与 length() 的区别:lengt

2021-08-06 20:41:06 496

原创 一些实用的取整函数

一些实用的取整函数Math.ceil(double a)对于a向上取整。Math.floor(double a)对于a向下取整。Math.round(double a)对于a进行四舍五入,特别注意返回的是整型。Math.rint(double a)对于a取最近的整数,与round()的返回值一样,不过返回的是double类型。演示 System.out.println("向上取整"); System.out.println(Math.ceil(11.3)

2021-08-06 20:00:48 289

原创 头像修改功能的实现

头像修改功能的实现前端修改图片按钮样式功能实现:首先设置原本的文件选择器不显示,也就是display:none;然后写下图片img标签,定义图片的大小,加一个点击事件,点击后执行隐藏了的图片选择器的功能,最后设置一个图标,在图片上面,编写事件,当时鼠标在图片内的时候,图标显示,不在的时候,隐藏,另外还要编写一个开启页面,默认图标隐藏的方法,因为刚打开页面的时候,浏览器会默认显示图标(可能是浏览器默认鼠标开始在图片内)。展示效果:点击图片后(鼠标移动到头像上,会自动出现一个修改的图标在头像上,点击

2021-08-04 20:39:49 6602 4

原创 thymeleaf与js执行顺序问题

thymeleaf与js执行顺序问题问题描述在使用thymeleaf向页面传值时,如果html页面中还写了js或者jquery来对传入的值进行操作的时候,我们会发现,通常页面无法成功进行想要的操作。解决方案通过多次试验,发现是因为js或者jquery的执行顺序的优先级比thymeleaf高,thymeleaf总是会慢于js以及jquery,因此在外面还未将数据传递过来时,就已经执行了js或者jquery代码,这样我们无法再对传过来的数据进行操作。该如何解决呢?我使用的是js的setTime

2021-08-04 19:33:55 2629

原创 String,StringBuffer,StringBuilder区别

String,StringBuffer,StringBuilder当对String类型的字符串进行修改时, 每次都相当于生成一个新的String对象,举个例子String a = “I”;当我们想要实现“I am a student”时, 即 a = a + “am” + “a” + “student”;系统会重新在堆内存中开辟三个位置分别用来存储"am"、“a”、“student”,然后再开辟一个位置来存放最后的结果,指针再指向这个堆内存地址, 再调用a的时候,,就是我们想要的结果,但是从这个例

2021-08-01 20:25:37 590 1

原创 在mybatis中#{}与${}的区别,以及一条sql中同时使用出现${}和#{}会出现的问题

先来看两个例子,假设在数据库中有一个name字段,它的类型是varchar,当通过这个字段进行查询语句时,在xml文件中可以使用where name=#{name}或者where name = "${name}"。假设在数据库中有一个id字段,它的类型是int,当通过这个字段进行查询语句时,在xml文件中可以使用where id=#{id}或者where id = ${id}。 在这两个例子中,我们可以看到#{}没有加双引号,${}在string类型的时候加了双引号。通过尝试多种数据类型后,总结发现

2021-07-30 21:19:28 3383

原创 @RequestMapping(“/view/{id}“)路径中传值

@RequestMapping("/view/{id}")路径中传值使用@RequestMapping("/view/{id}"),可以这样使用方法public ModelAndView view(@PathVariable("id") Integer id)通过传入参数(@PathVariable(“id”) Integer id),可以获取到页面上传递过来的值,广泛用于修改本行数据或删除本行数据。只需在html界面写上<a href="/product/view/${product.id

2021-07-08 20:28:08 3343

原创 idea报错Error:java: 不再支持源选项 5。请使用 6 或更高版本。

针对Error:java: 不再支持源选项 5。请使用 6 或更高版本只需要修改几个地方即可解决点击File–>Project Structure–>Project修改划红线的两个地方,改为自己电脑中安装了的jdk版本还是这个目录,点击Modules和上一步一样修改划红线部分最后点击File–>Settings–>Build…–>Compiler–>Java Compiler修改下面两个地方的jdk版本以上步骤的版本号要保持一致,做完

2021-07-08 18:30:45 2553 3

使用canvas和js制作五子棋

使用canvas以及原生js写的一个五子棋游戏

2021-01-14

空空如也

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

TA关注的人

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