自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 打工人必备!Shiro 权限管理实战秘籍,5 分钟掌握企业级安全方案

本文从 Shiro 核心概念切入,通过 12 + 可视化图表和 1000 + 行带注释代码,系统讲解从基础配置到企业级安全方案的完整实现。重点涵盖认证授权原理、分布式会话管理、JWT 集成、AI 增强安全等前沿技术,附真实攻防案例和开发避坑指南,适合初中高级开发者进阶学习。

2025-03-12 10:39:39 366

原创 JDK高频面试题(包重点)

本文章主要是分享高频的面试题,什么是JDK、JVM的内存结构、JDK8的新特性和java垃圾回收(GC)机制。

2024-12-27 17:56:14 1164

原创 MybatisPlus超详细讲解

是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

2024-12-18 20:33:59 2781

原创 Spring 定时任务全解析:从入门到实战,轻松搞定任务调度

以一个实际的业务场景引入,比如:“在企业级应用开发中,常常需要定时执行一些任务,例如定时生成报表、定时清理缓存数据等。实际应用中可以根据具体的业务需求,灵活调整定时任务的执行规则以及任务逻辑等内容。至此,我们已经详细了解了 Spring 定时任务的相关知识,并通过一个数据备份系统案例进行了实践演示。当应用启动后,Spring 会自动按照设定的时间调度任务执行,将数据备份到指定的文件中。首先,确保你的项目中引入了 Spring 相关依赖,对于基于 Maven 管理的项目,一般需要引入。

2024-12-13 10:45:14 931

原创 Spring事务控制

定义:Spring 事务控制是指在 Spring 框架中管理数据库事务的一种机制。事务是一组数据库操作,这些操作要么全部成功执行(提交事务),要么全部失败(回滚事务),以确保数据的一致性和完整性。例如,在一个银行转账系统中,从一个账户扣款和向另一个账户收款这两个操作应该作为一个事务来处理,要么两个操作都成功完成转账,要么如果其中一个操作出现问题(如收款账户不存在),则两个操作都要回滚,就像转账没有发生过一样。特性。

2024-12-10 22:45:22 749

原创 Spring Aop(面向切面编程)

AOP 的目的就是将这些横切的功能提取出来,形成独立的模块,从而使代码更加模块化、可维护和可复用。的方法执行前后,执行了额外的日志记录逻辑。当然,在实际应用中,AOP 可以用于更多复杂的场景,比如事务管理、权限校验等,你可以根据具体需求去定制切点以及切入的逻辑内容。首先,在你的 Maven 项目(以 Maven 为例,如果是 Gradle 等构建工具可对应调整配置)的。创建一个切面类,用于定义在哪些方法执行的哪些阶段要切入执行额外的逻辑。你可以在 Spring Boot 的测试类或者在启动应用后通过调用。

2024-12-10 20:36:47 907

原创 java代理模式--动态代理和静态代理

首先定义了接口及其实现类,这是实际的业务逻辑所在。然后创建了类实现接口,重写invoke方法来控制代理对象方法调用时的具体行为,在真正调用目标对象方法前后添加了简单的日志输出逻辑。最后在类的main方法中,先创建目标对象,再创建代理处理器并关联目标对象,接着通过方法生成代理对象,通过这个代理对象调用方法时,就会按照代理处理器中定义的逻辑执行,也就是在执行实际业务方法前后会有额外的操作被执行,同时也能得到正确的业务方法返回结果。

2024-12-09 14:38:50 409

原创 链式设计模式——装饰模式和职责链模式

动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。ConcreteComponent :是定义了一个具体的对象,可以给这个对象添加一些职责;Decorator :装饰抽象类,继承了Component,从外部类来扩展Component类的功能,但对于Component来说,无需知道Decorator的存在的;ConcerteDecorator :就是具体的装饰对象,起到给Component添加职责的功能;

2024-12-09 11:18:02 1245

原创 spring中@Resource注解

Resource注解实现⾃动注⼊(反射) , 可以设置name属性,name属性值必须与bean的id属性值⼀致;5、可以设置name属性,name属性值必须与bean标签的id属性值⼀致;1、默认根据属性字段名称查找对应的 bean 对象 (属性字段的名称与bean标签的id属性值相等)1. 默认根据属性字段名称查找对应的bean对象 (属性字段的名称与bean标签的id属性值相等)* 默认根据属性字段名称查找对应的bean对象 (属性字段的名称与bean标签的id属性值相等)// 不提供set方法。

2024-12-09 09:16:38 524

原创 Spring 框架环境搭建

3.在 src\main\resources ⽬录下新建 spring.xml ⽂件,并拷⻉官⽹⽂档提供的模板内容到 xml 中。配置 bean 到 xml 中,把对应 bean 纳⼊到 Spring 容器来管理 spring.xml。1. 在项⽬的 src 下创建⽂件夹 resources。1.创建 Maven 的普通 Java 项⽬。三、添加 Spring 框架的依赖坐标。4、设置项⽬的名称和存放的⼯作空间。3.设置项⽬的 Maven 环境。一、新建 Maven 项⽬。2. 设置项⽬的坐标。

2024-11-24 23:19:05 493

原创 Redis的数据结构类型的存储(增)、删(删除)和查(获取)的操作

不允许重复元素,且元素有顺序.每个元素都会关联一个double类型的分数。redis存储的是:key,value格式的数据,其中**key都是字符串**,value有5种不同的数据结构。lpop key: 删除列表最左边的元素,并将元素返回。rpop key: 删除列表最右边的元素,并将元素返回。(2)获取: hget key field: 获取指定的field对应的值。(3)删除:srem key value:删除set集合中的某个元素。(2) 获取:smembers key:获取set集合中所有元素。

2024-10-29 10:48:36 609

原创 SQL聚合函数

1、AVG和SUM函数。2、MIN和MAX函数。

2024-10-28 10:17:00 215

原创 SQL中视图

举例:联合“emp_dept”视图和“emp_year_salary”视图查询员工姓名、部门名称、年薪信息创建 “emp_dept_ysalary”视图。执行结果显示,注释Comment为VIEW,说明该表为视图,其他的信息为NULL,说明这是一个虚表。DROP VIEW IF EXISTS 视图名称1,视图名称2,视图名称3,...;# 查看视图信息(显示数据表的存储引擎、版本、数据行数和数据大小等)删除视图只是删除视图的定义,并不会删除基表的数据。语法1:查看数据库的表对象、视图对象。

2024-10-28 10:03:06 746

原创 SQL中where和having的区别

因为 WHERE 可以先筛选,用一个筛选后的较小数据集和关联表进行连接,这样占用的资源比较少,执行效率也比较高。HAVING 则需要先把结果集准备好,也就是用未被筛选的数据集进行关联,然后对这个大的数据集进行筛选,这样占用的资源就比较多,执行效率也较低。HAVING 在 GROUP BY 之后,可以使用分组字段和分组中的计算函数,对分组的结果集进行筛选,这个功能是 WHERE 无法完成的。**区别1:WHERE 可以直接使用表中的字段作为筛选条件,但不能使用分组中的计算函数作为筛选条件;

2024-10-28 09:30:07 229

原创 MYSQL中DDL和DML语句

INSERT INTO stu (id,NAME,sex,birthday,score,email,tel,STATUS) VALUES (2,'李四','男','1999-11-11',88.88,'lisi@wedu.cn','13888888888',1);(2,'李四','男','1999-11-11',88.88,'lisi@wedu.cn','13888888888',1),),(值1,值2,…INSERT INTO stu (id, NAME) VALUES (1, '张三');

2024-10-21 11:21:07 779

原创 mysql的数据类型

1、整数型、浮点型定点数据类型和位类型。

2024-10-21 11:02:59 226

原创 mysql的排序与分页

使用 ORDER BY 子句排序ASC(ascend): 升序DESC(descend):降序ORDER BY 子句在SELECT语句的结尾。分页原理所谓分页显示,就是将数据库中的结果集,一段一段显示出来需要的条件。MySQL中使用 LIMIT 实现分页格式:第一个“位置偏移量”参数指示MySQL从哪一行开始显示,是一个可选参数,如果不指定“位置偏移量”,将会从表中的第一条记录开始(第一条记录的位置偏移量是0,第二条记录的位置偏移量是1,以此类推);第二个参数“行数”指示返回的记录条数。举例 分页显式公式:

2024-10-21 10:52:15 395

原创 mysql中运算符(算术运算符、比较运算符、非符号运算符和逻辑运算符)

算术运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进行加(+)、减(-)、乘(*)、除(/)和取模(%)运算。

2024-10-21 09:30:57 1117

原创 Mysql的基本SELECT语句

这些语句定义了不同的数据库、表、视图、索引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构。主要的语句关键字包括。

2024-09-27 17:59:24 423 1

原创 java中枚举

枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。为了间接的表示一些固定的值,Java就给我们提供了枚举 是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。枚举类可以有构造器,但必须是private的,它默认的也是private的。// 定义一个枚举类,用来表示春,夏,秋,冬这四个固定值。我们可以通过"枚举类名.枚举项名称"去访问指定的枚举项。枚举类也可以有抽象方法,但是枚举项必须重写该方法。枚举项1,枚举项2,枚举项3;

2024-09-22 18:02:46 246

原创 java中的反射

反射机制:是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意属性和方法;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。Class.forName(全类名)方法。2、获取class对象的三种方式。对象名.getClass()方法。2、获取Student类对象。类名.class属性。

2024-09-22 17:37:05 207

原创 Collection的三种遍历方式(迭代器、增强for和lamdar表达式)

Iterator iterator(): 返回此集合中元素的迭代器,通过集合对象的iterator()方法得到。​ E next(): 获取当前位置的元素,将迭代器对象移向下一个索引位置。boolean hasNext(): 判断当前位置是否有元素可以被取出。for(集合/数组中元素的数据类型 变量名 : 集合/数组名) {// 已经将当前遍历到的元素封装到变量中了,直接使用变量即可。Collection集合的遍历。迭代器,集合的专用遍历方式。三、 lamdar表达式。二、 增强for循环。

2024-09-12 19:30:20 340

原创 集合框架的概述

1、Collection集合的概述和使用Collection集合概述是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素JDK 不提供此接口的任何直接实现.它提供更具体的子接口(如Set和List)实现创建Collection集合的对象多态的方式具体的实现类ArrayListCollection集合常用方法2、List集合List集合的概述有序集合,这里的有序指的是存取顺序。

2024-09-08 20:48:22 386

原创 “== ”和equals()的区别

引用数据类型,在没有在类中重写equals()和hashcode()方法时,比较的是地址值;在类中重写equals()和hashcode()方法时,比较的就是内容;equals()方法中没有基本数据类型的比较。引用数据类型,比较的是对象的地址值;基本数据类型,比较的就是值是否相等;

2024-09-01 22:39:19 163

原创 String类

String类的构造方法代码演示: 创建字符串对象的区别对比- 通过构造方法创建 ​ 通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同- 直接赋值方式创建 ​ 以“”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会建立一个 String 对象,并在字符串池中维护

2024-09-01 22:29:28 205

原创 成员变量和局部变量

成员变量(随着对象的存在而存在,随着对象的消失而消失)局部变量(随着方法的调用而存在,醉着方法的调用完毕而消失)注意事项: 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。成员变量(有默认初始化值)局部变量(没有默认初始化值,必须先定义,赋值才能使用)成员变量(类中方法外)局部变量(方法内部或方法声明上)成员变量(堆内存)局部变量(栈内存)

2024-08-25 21:39:22 278

原创 创建对象的内存图【理解】

多个对象在堆内存中,都有不同的内存划分,成员变量存储在各自的内存区域中,成员方法多个对象共用的一份。只要有任何一个对象修改了内存中的数据,随后,无论使用哪一个对象进行数据获取,都是修改后的数据。当多个对象的引用指向同一个内存空间(变量所记录的地址值是一样的)

2024-08-25 21:33:19 201

原创 java从键盘分别输入年、月、日,判断这一天是当年的第几天

注:判断一年是否是闰年的标准: 1)可以被4整除,但不可被100整除 或 2)可以被400整除;对于题1的升级版: 从键盘分别输入年、月、日,判断这一天是当年的第几天。

2024-08-22 20:20:47 220

原创 面向对象中类与对象的理解

类的组成是由属性和行为两部分组成在类中通过成员变量来体现(类中方法外的变量)在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)① 定义类② 编写类的成员变量③ 编写类的成员方法// 属性 : 姓名, 年龄// 成员变量: 跟之前定义变量的格式一样, 只不过位置发生了改变, 类中方法外int age;// 行为 : 学习// 成员方法: 跟之前定义方法的格式一样, 只不过去掉了static关键字.System.out.println("学习");

2024-08-18 23:08:57 332

原创 java EE中方法重载的理解

重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否相互构成重载。方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载。重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式。多个方法的参数不相同,类型不同或者数量不同。多个方法具有相同的方法名。多个方法在同一个类中。

2024-08-11 22:33:59 155

原创 java EE中方法的形参和实参

在这个例子中,`firstName` 和 `lastName` 是形参,当你调用这个方法时,比如 `printNames("John", "Doe")`,"John" 和 "Doe" 就是实参。1:定义方法,名称为print ​ 2:为方法添加两个int类型的形参,准备接受调用者传递过来的实参 ​ 3:方法中设计for循环,循环从n开始,到m结束 ​ 4:循环中加入if判断,是奇数,则打印 ​ 5:main方法中调用print方法,传入两个实际参数。带参数方法的练习-打印n-m之间奇数的所有奇数。

2024-08-11 22:09:53 178

原创 java中数组的定义格式、数组的初始化、数组的索引、数组的遍历

数组的定义格式;数组的初始化;数组的索引;数组的遍历

2024-08-11 21:57:12 409

原创 switch语句

如果switch语句中,case省略了break语句, 就会开始case穿透。当开始case穿透,后续的case就不会具有匹配效果,内部的语句都会执行,直到看见break,或者将整体switch语句执行完毕,才会结束。

2024-08-04 18:12:57 341

原创 分支结构之if语句

岳小鹏参加Java考试,他和父亲岳不群达成承诺: 如果: 成绩为100分时,奖励一辆BMW;②如果值为true就执行语句体1;如果值为false就计算关系表达式2的值。③如果值为true就执行语句体2;如果值为false就计算关系表达式3的值。⑤如果没有任何关系表达式为true,就执行语句体n+1。③如果关系表达式的值为false就不执行语句体。③如果关系表达式的值为false就执行语句体2。②如果关系表达式的值为true就执行语句体1。②如果关系表达式的值为true就执行语句体。if (关系表达式) {

2024-08-04 17:53:32 476

原创 java中三元运算符理解和应用

一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,请用程序实现获取这三个和尚的最高身高。// 判断 a>b 是否为真,如果为真取a的值,如果为假,取b的值。表达式:当判断结果为true时调用表达式1,为false时调用表达式2;总结:如果条件表达式成立或者满足则执行表达式1,否则执行第二个;关系表达式:是判断的条件,判断结果为boolean型;表达式1 : 表达式2;

2024-08-04 17:23:31 291

原创 创建一个char类型的36个元素的数组,前26个元素放置‘A‘-‘Z‘, 后10个元素放置‘0‘-‘9‘。

创建一个char类型的36个元素的数组,前26个元素放置‘A‘-‘Z‘, 后10个元素放置‘0‘-‘9‘。使用for循环访问所有元素并打印出来。

2024-07-23 10:37:53 223

原创 JVM、JRE和JDK的联系

JVM:Java虚拟机;JRE:Java运行环境,包含了JVM和Java的核心类库(Java API);JDK:Java开发工具,包含了JRE和开发工具

2024-07-21 12:55:39 297 1

原创 入【java】的第一个程序,HelloWorld!!!

1、首先我们在我们jdk的bin目录文件夹下,先创建一个文件,文件名叫“HelloWorld.text”;2、我们把代码输入这个HelloWorld文件中;3、我们把文件名重命名为“HelloWorld.java”;4、我们在导航栏上输入“cmd”进入控制台;5、我们输入“javac HelloWorld.java”回车;6、我们在输入“java HelloWorld”;我们会得到一个“HelloWorld.class”的文件,这个后面我们会介绍;

2024-07-21 10:08:17 461 1

空空如也

空空如也

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

TA关注的人

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