自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++中的const有哪些作用?

1.const用于定义常量:const定义的常量编译器可以对其进行数据静态类型安全检查。2.const修饰函数的形参:当输入参数为用户自定义类型和抽象数据类型时,应该将”值传递“改为”const&传递“,可以提高效率。void Miemie(Sheep a);void Miemie(sheep const& a); 第一个函数产生Sheep类型的临时对象用于复制参数a,临时对象的构造、复制、析构都会消耗时间,第二个函数用引用传递,不会产生临时对象,节省了时间。用const可以保证a

2023-03-07 22:40:35 935

原创 Shiro-身份验证和授权过程(源码)

身份验证这里获取的我们自定义实现的Realm授权当应用程序想知道当前用户是否有此权限的时候调用doGetAuthorizationInfo方法用Subject接口的hasRole的方法为例,如果我们调用了此方法

2021-09-01 11:26:11 119

原创 Ruoyi自定义资源映射

1.创建springboot项目2.导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> &l

2021-08-31 09:18:45 2196

原创 Springboot+mybatis+mysql+注解+AOP配置多源数据库

Springboot+mybatis+mysql+注解+AOP配置多源数据库1.创建springboot项目2.向pom.xml导入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!--<version>2.5.4</versi

2021-08-28 09:47:45 236

原创 java-线程

线程创建1.继承Thread类(不建议使用因为java是单继承)2.时间Runnable接口(推荐使用)多线程案例(龟兔赛跑)public class Race implements Runnable { private static String winner; @Override public void run() { for (int i = 0; i <= 100; i++) { if(Thread.currentThr

2021-08-27 15:27:31 65

原创 java-lambda表达式

lambda表达式函数式接口的定义,如果只包含唯一一个抽象方法,那么他就是一个函数式接口对于函数式接口,可以通过lambda表达式来创建该接口对象public class TestLambda{ public static void main(String[] args) { Like like=(a)->{ System.out.println("like"+a+"次"); }; like.lambda(520

2021-08-27 15:26:39 49

原创 java-静态代理

静态代理public class TestStaticProxy { public static void main(String[] args) { //用户只能从代理商购买用u盘 Taobao taobao=new Taobao(); //用户从代理商购买一个u盘 float price=taobao.sell(); System.out.println("taobao购买u盘的价格是:"+price);

2021-08-27 15:26:08 41

原创 java -平衡二叉树(左旋转、右旋转、双旋转)

平衡二叉树平衡二叉树又叫平衡二叉搜索树,可以保证查询效率较高。特点一棵树它左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。右旋转构建二叉查找树:构成的二叉树的形状:此时,左右子树高度差为为2,根节点值为10这时二叉树:左子树高度-右子树的高度=2 不满足平衡二叉树,为了让二叉树成为平衡二叉树就需要进行右旋转降低左子树的高度,增加右子树的深度。右旋转的步骤:(紫色为当前结点,红色为新结点)//右旋转方法 private void rightRotat

2021-08-26 23:14:46 824

原创 Spring security一些实现方法积累

本博客只针对自己的学习spring security过程记录Spring Security入门案例1.创建springboot项目,导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependen

2021-08-22 19:37:16 573

原创 IDEA2020解决每次创建新项目都要重新配置maven仓库位置问题

针对个人学习maven遇到的问题,如果也能帮到您我也很高兴1.第一步2.第二步,黄3是配置自己maven安装的位置、maven的settings.xml位置、自定义maven仓库的位置

2021-08-22 08:35:49 606

原创 Springboot整合Redis

1.创建Springboot项目导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframe

2021-08-21 17:08:08 48

原创 Ruoyi同一用户多设备登录限制过滤器和退出登录过滤器和验证码过滤器

在Ruoyi中同一用户多设备登录限制过滤器实现类为KickoutSessionFilter,它继承了AccessControlFilter类,控制对资源的访问的任何过滤器的超类在KickoutSessionFilter中的MaxSession属性默人为-1表示不进行限制,可以同类中的set方法进行设置在KickoutSessionFilter中的kickoutAfter属性用来设置踢出规律,默认为false表示踢出之前登录的用户在KickoutSessionFilter中的kickoutUrl

2021-08-11 14:22:31 1647

原创 Ruoyi中的SessionFactory

shiro中的SessionFactory的作用就是:一个简单的工厂类,用于实例化具体的 Session 实例。 如果实例需要与默认值不同,这主要是一种允许在运行时创建实例的机制。 它不是由框架的最终用户使用,而是由那些将 Shiro 配置为在应用程序中工作的用户使用,并且通常被注入到 SecurityManager 或 SessionManager 中。大概的意思是创建一个session的会话提供我们程序员使用。在SessionFactory接口中有一个public Session createS

2021-08-11 10:55:40 617

原创 Ruoyi管理系统的自定义任务会话验证调度器实现思路

在Ruoyi中SpringSessionValidationScheduler类通过实现SessionValidationScheduler接口来实现会话验证SessionValidationScheduler接口中有三个方法:boolean isEnabled();标志会话验证是否开启void enableSessionValidation(); 启用会话验证void disableSessionValidation();禁用会话验证单纯的通过接口来看我们看不出来什么,我们可以找到Sessio

2021-08-11 02:55:11 659

原创 Spring实战-装配Bean

自动化装配bean组件扫描spring会自动发现应用上下文中所创建的bean1.创建CompactDisc接口package soundsystem;public interface CompacDisc { void play();}2.创建CompactDisc接口的实现类SgtPeppers@Component:注解表明该类会作为组件类package soundsystem;import org.springframework.stereotype.Component;

2021-08-10 20:19:02 236

原创 java-注解

我们常用的注解@Override:覆盖父类的方法,在编译的时候起作用,java就把它的作用范围规定为SOURCE@WebServlet 是在程序运行的时候起作用,java就把它的作用范围规定为RUNTIME@Target指定注解针对的地方ElementType:ElementType.TYPE 针对类、接口ElementType.FIELD 针对成员变量ElementType.METHOD 针对成员方法ElementType.PARAMETER 针对方法参数ELementType.CONS

2021-08-03 22:21:17 45

原创 导出数据到excel表格(注解+反射+枚举+poi)

一、导入所

2021-08-03 22:14:58 1665

原创 ssm框架整合

创建项目第一步打开idea,点击Create New Project第二步1.点击maven2.点击Create from archetype3.点击maven-archetype-webapp4.Next第三步1.填写Groupid(在maven仓库中的分组,建议先和我的命名一样)2.填写Artifactid(项目名称,建议先和我的命名一样)3.Version不用管4.点击Next第四步1.选择你自己的maven仓库(图中是我的自己的我们maven仓库安装在了D盘)2.点

2021-07-18 15:57:03 128

原创 C语言----普利姆算法(最小生成树)

#include<stdio.h>#include<stdlib.h>#define MAXVEX 20/*最大顶点个数*/#define INFINITY 32767/*表示无穷,可自定义*/#define ELem int#define FALSE 0#define OK 1#define TRUE 1typedef char VertexType;typedef struct { int arcs[MAXVEX][MAXVEX];

2021-03-18 19:31:04 506

原创 C语言-赫夫曼编码

赫夫曼编码#include<stdio.h>#include<stdlib.h>typedef struct { unsigned int weight; unsigned int parent, lchild, rchild;}HTNode, * HuffmanTree;typedef char** HuffmanCode;void Select(HuffmanTree HT, int i, int* s1, int* s2);void strcpy1(char*

2020-11-15 14:38:03 856 2

原创 数据结构-线性表的顺序表示实现

#include<stdio.h>#include<stdlib.h>#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef int Elemtype;typedef struct { Elemtype* elem; int length; int listsize;}SqList;//初始化void InitList_Sq(SqList*L) { (*L).elem = (Elemtype*)ma

2020-09-15 12:04:57 162

原创 数据结构-实现后缀表达式转换表达式树

后缀表达式 转换成一颗表达式树,整个代码自己写的,很简单一看就懂,那个地方没看懂(你就要反思一下自己怎么学的),哈哈哈,也可以评论,有时间我会解答,仅供参考不喜勿喷,欢迎大佬指点,点个赞作为鼓励呀,谢谢下面有程序运行过程的图片#include<stdio.h>#include<stdlib.h>typedef struct TreeNode* PtrToNode;typedef PtrToNode Tree;typedef char ElementType;#defin

2020-08-11 13:28:23 461

原创 数据结构-实现队列

队列实现代码,整个代码一部分是自己写出来的,一部分采取书上的,很简单一看就懂,那个地方没看懂(你就要反思一下自己怎么学的),哈哈哈,也可以评论,有时间我会解答,仅供参考不喜勿喷,欢迎大佬指点,点个赞作为鼓励呀,谢谢代码如下:#include<stdio.h>#include<stdlib.h>//检测队列是否为空typedef struct QueueRecord* Queue;typedef int ElementType;struct QueueRecord{

2020-08-11 11:12:14 176

原创 数据结构-实现中缀转后缀

中缀转后缀 ,整个代码是我自己写的 没啥技术含量 一看就懂,那个地方没看懂(你就要反思一下自己怎么学的),哈哈哈,也可以评论,仅供参考不喜勿喷,欢迎大佬指点,点个赞作为鼓励呀,谢谢#include<stdio.h>#define max 20int main(){ //中缀: a+b*c+(d*e+f)*g //后缀: abc*+de*f+g*+ char arr1[max] = { 'a','+','b','*','c','+','(','d','*','e','+','f',')

2020-08-10 20:00:56 519

原创 数据结构-实现后缀表达式计算(简单)

因为实在是太简单我就不讲了,可以点赞,给个鼓励代码如下:#include<stdio.h>#define MAX 20int main(){ char s1[MAX] = { '6','5','2','3','+','8','*','+','3','+','*','\0'}; double s2[MAX] = { 0 }; int i = 0; int j = 0; while (s1[i] != '\0') { if (s1[i] >= 48 &&amp

2020-08-10 18:48:48 506

空空如也

空空如也

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

TA关注的人

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