自定义博客皮肤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)
  • 收藏
  • 关注

原创 JWT令牌技术

令牌技术,听起来高大上,本质上就是一个字符串,用来作为用户的身份标识,类似于身份证号.要用到令牌技术,服务器需要具备。

2026-10-15 21:38:12 192

原创 JavaEE进阶:事务和事务传播机制

事务传播机制,简单来说就是有多个事务进行相互调用的情况,比如方法A,B,C都有事务,此时A调用B,B调用C,这时候事务是怎么样的,发生异常时全部回滚还是部分回滚.事务隔离级别解决的是多个事务同时调用一个数据库的问题.1.Spring 中使用事务,有两种方式:编程式事务 (手动操作) 和声明式事务。其中声明式事务使用较多,在方法上添加@Transactional就可以实现了。

2026-09-14 19:07:16 214

原创 JavaEE进阶:SpringAOP

创建一个注解类然后用@Target表示Annotation所修饰的对象范围,也就是说这个注解可以用在方法上还是类上.@Retention注解指Annotation被保留的时间长短,也就是注解的生命周期此时就已经定义完一个注解了.

2026-09-13 19:30:09 279

原创 JavaEE进阶:SpringBoot统一功能处理

我们需要从session中获取用户信息,如果session中不存在,则返回false,并将http状态码设置为401,否则返回true.@Overrideif(session!= null){

2026-09-12 19:54:42 105

原创 JavaEE进阶:mybatis-plus使用

在实际的开发中,MyBatis-Plus提供的操作不能满足我们的实际需求,MyBatis-Plus也提供了自定义 SQL的功能,我们可以利用Wrapper构造查询条件,再结合Mapper编写SQL代码示例:测试代码:运行代码:参数命名: 在自定义 SQL 时,传递 Wrapper 对象作为参数时,参数名必须为ew,或者使用注解明确指定参数为 Wrapper 对象。使用: 在 SQL 语句中,使用来引用 Wrapper 对象生成的 SQL 片段。不支持基于 entity 的 where 语句。

2026-07-24 23:35:21 260

原创 JavaEE进阶:MyBatis操作数据库(进阶)

通过这两个标签,可以重复使用同一个SQL片段.运行代码,看看效果.

2026-05-27 19:33:54 422

原创 JavaEE进阶:MyBatis 操作数据库(入门)

在上面mybatis的讲解中,我们使用了数据库连接池技术,避免频繁创建销毁连接.那么什么是数据库连接池?数据库连接池负责分配管理和释放数据库连接.他允许应用程序重复使用一个现有的数据库连接,而不是再建立一个.每次执行 SQL 语句,要先创建一个新的连接对象,然后执行 SQL 语句,SQL 语句执行完,再关闭连接对象释放资源。这种重复的创建连接,销毁连接比较消耗资源.

2026-05-19 19:41:02 406

原创 JavaEE进阶:SpringBoot日志

1.日志是程序中的重要组成部分,使用日志可以快速的发现和定位问题,Spring Boot 内容了日志框架,默认情况下使用的是 info 日志级别将日志输出到控制台的,我们可以通过lombok 提供的 @Slf4j注解和 log 对象快速的打印自定义日志。2.日志包含 6 个级别,日志级别越高,收到的日志信息也就越少,我们可以通过配置日志的保存名称或保存目录来将日志持久化。

2026-05-11 21:10:41 465

原创 JavaEE进阶:SpringBoot配置文件

请求URL:/captcha/getCaptcha响应:验证码图片内容Hutool官网Hutool🍬一个功能丰富且易用的Java工具库,涵盖了字符串、数字、集合、编码、日期、文件、IO、加密、数据库JDBC、JSON、HTTP客户端等功能。打开官网,可以在文档中找到有关图形验证码相关API,我们是通过使用这个工具来实现我们的验证码功能。

2026-05-11 18:52:12 607

原创 JavaEE进阶:SpringIoC&DI

IoC是Spring的核心思想,其实我们在之前的学习中已经用到了IoC了.在使用类上使用@RestController,@Controller注解的时候,就是把这个对象交给了Spring进行管理.Spring框架在启动的时候就会加载这个类.把对象交给Spring管理,就是IoC思想.IoC: Inversion of Control.字面意思翻译:控制反转.也就是说Spring是一个"控制反转"的容器.现在有一个需求,需要创建一个车.car.run();

2026-05-09 12:45:27 437

原创 JavaEE进阶:SpirngMVC入门(2)

请求路径:/user/login请求方式:POST接口描述:判断账号密码是否正确.请求路径:/user/getLoginUser请求方式:GET接口描述:查询当前登入用户。

2026-04-20 20:50:58 464

原创 JavaEE进阶:Spring Web MVC入门(1)

MVC是ModelViewController的缩写,它是软件工程中的⼀种软件架构设计模式,它把软件系统分为模型、视图和控制器三个基本部分.Spring MVC就是对MVC思想的一种具体实现,此外,SpringMVC还是一个Web框架.所以,SpringMVC关注点有两个:MVC和Web框架.其实我们在之前创建SpringBoot项目的时候,勾选的SpringWeb框架,就是SpirngMVC框架.那么SpringBoot和SpringMVC之间有什么关系呢?

2026-04-19 21:43:54 418

原创 JavaEE进阶:导读&SpringBoot快速上手

web(World Wild Web),即全球广域网,也称万维网.简单来说,就是可以通过浏览器和程序进行交互,比如京东淘宝等网站.目前来说,用户对PC端应用的开发结构模式主要分为C/S架构和B/S架构.C/S即Client/Server(客户机/服务器)结构.常见的C/S架构的应用有QQ/微信,以及各种需要下载的网络游戏等等.一般来说,需要安装并且要与服务器建立网络通信的应用都属于C/S架构。

2026-04-13 20:53:17 510

原创 JavaEE初阶:HTTP/HTTPS

举个例子,我现在想去买早饭.正常情况下,是我去面馆,把钱给面馆老板,然后老板把面给我.现在有了代理程序之后,是我把钱给跑腿的,跑腿的去面馆,然后把钱给面馆老板,然后面馆老板把面给跑腿的,跑腿的再把面给我.这里,跑腿的就相当于是代理作用.

2026-03-16 14:01:51 489

原创 JavaEE初阶:网络原理之TCP/IP协议(二)

本篇文章接着上一篇文章,继续为大家讲解网络原理相关知识.

2026-03-12 20:45:58 439

原创 JavaEE初阶:网络原理之TCP/IP协议(一)

什么是行文本方式???举个例子,就是刚刚上面那种"1234;5678;hello"这种就是行文本,可读性很差,现在已经不怎么流行使用这种方式了。

2026-03-10 20:29:37 485

原创 Java优选算法DAY1

这整个代码,我觉得最重要的就是des的初始值设置为了-1,这样,我们不需要去管开头是否为0,只需要在碰到非零元素的时候,进行des++操作,这样nums[des]的值始终是第一个0,然后交换nums[cur].因为我们des的初始值为-1,des++之后就表示数组的第一个元素,也就是0,此时交换nums[des]和nums[cur],然后继续遍历数组,直到遍历完成。当我们碰到的第一个元素是0元素的时候,我们就不需要处理,让cur++即可,直到cur遇到非零元素,然后当des++

2026-03-09 21:40:25 66

原创 JavaEE初阶:网络编程

就好比喝水,我们不会一直对着水龙头喝水,而是将水接到水杯里面,有一定量的水才会去喝。

2026-02-19 09:48:04 813 2

原创 JavaEE初阶:网络初识

在网络发展之初,计算机之间都是相互独立的,那会的游戏也都是单机游戏随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成业务,就有了网络互连。网络互连:将多台计算机连接在一起,完成数据共享。数据共享本质是,即计算机之间通过网络来传输数据,也称为。根据网络互连的规模不同,可以划分为局域网和广域网。局域网,即 Local Area Network,简称 LAN。Local 即标识了局域网是本地,局部组建的一种私有网络。

2026-02-07 20:48:26 590

原创 JavaEE初阶:文件操作和IO

文件,在计算机中是保存在硬盘上的.操作系统,把硬盘进行的"抽象"封装,编程的时候,我们是不会直接操纵硬盘的,而是通过"文件"来间接操作硬盘.通过"文件资源管理器"来管理文件打开"此电脑",我们可以看到C盘D盘...然后再打开C盘又可以看到各种文件夹,每个文件夹里面都是各种文件所以由此可知,"文件资源管理器"是通过N叉树的结构来管理文件的。

2026-02-05 00:36:30 720

原创 JavaEE初阶:多线程进阶

偏向锁不是真的加锁,只是在锁的对象头中记录⼀个标记(记录该锁所属的线程).如果没有其他线程参与竞争锁,那么就不会真正执行加锁操作,从而降低程序开销.⼀旦真的涉及到其他的线程竞争,再取消偏向锁状态,进入轻量级锁状态.

2026-01-29 22:06:56 660

原创 JavaEE:多线程初阶(二)

我们将下面这个new代码可以分成三个CPU指令(对应的指令很多,简化为3个主要的)

2026-01-11 20:35:15 914

原创 JavaEE:多线程初阶(一)

我们看try,catch这一块,其实当sleep被唤醒的时候,就会触发InterruptedException,但是下面我们只进行了打印这个异常的操作,并没有其他操作,所以说在捕获异常之后,还是会继续执行。这里我们创建两个线程,然后启动两个线程,多次执行,可以发现有时候先打印"Thread1 is running",有时候会先打印"Thread2 is running"这时候线程1没解锁的时候,线程2是拿不到锁的,此时线程2就是在等待线程1解锁,这个状态就是BLOCKED。

2026-01-09 17:56:45 890

原创 计算机是如何工作的?

数据库的基础知识已经告一段落了,MySQL数据库的进阶知识会在未来继续写博客.接下来作者会为大家讲解JavaEE初阶的知识.在学习JavaEE初阶之前,我们需要先了解计算机是如何工作的?了解完这个之后,有助于我们对于JavaEE知识的理解和更好的学习.

2025-12-29 18:30:57 715

原创 MySQL数据库:事务

MySQL 服务可以同时被多个客户端访问,每个客户端执行的 DML 语句以事务为基本单位,那么不同的客户端在对同一张表中的同一条数据进行修改的时候就可能出现相互影响的情况为了保证不同的事务之间在执行的过程中不受影响,那么事务之间就需要要相互隔离,这种特性就是隔离性。

2025-12-14 22:17:01 840

原创 MySQL数据库:视图&用户和权限管理&索引

MySQL 的索引是一种数据结构,它可以帮助数据库高效地查询、更新数据表中的数据。索引通过一定的规则排列数据表中的记录,使得对表的查询可以通过对索引的搜索来加快速度。MySQL 索引类似于书籍的目录,通过指向数据行的位置,可以快速定位和访问表中的数据.比如汉语字典的目录(索引)页,我们可以按笔画、偏旁部首、拼音等排序的目录(索引)快速查找到需要的字。为什么要使用索引?显而易见,使用索引的目的就是提高数据检索的效率,在日常使用应用程序的时候,增删改使用的频率远远低于查询操作.

2025-12-14 16:13:42 1255

原创 MySQL数据库:约束&设计&联合查询

由于数据设计时的范式要求,一条完整的信息往往会被分散在多个表中,需要查询多个表才能得到一条完整的信息.例如如果我们想得到学生信息,就需要查询学生表和班级表.这里的联合是指多个表的组合.多表联合查询时mysql内部是如何进行计算的?mysql会对参与计算的所有表取笛卡尔积.并将结果集存在临时表中.什么是笛卡尔积?对于上面的班级表和学生表来说,下面的就是取笛卡尔积后的结果,也就是相当于用学生表的每个信息去和班级表的每个信息匹配,然后再根据两个表的关联关系过滤掉不正确的结果.

2025-12-07 21:15:57 702

原创 MySQL数据库:基础操作

create database if not exists + 数据库名字 + character set + 字符集编码 + collate + 校验规则创建一个名为test1的数据库,字符集编码是utf8mb4,校验规则是utf8mb4_0900_ai_ci,如果存在则不创建.在这里,我们可以通过show charset;这两个代码来看数据库支持的字符集编码和排序规则.下面是部分支持的字符集编码.下面是部分排序规则.MySQL8.0之后默认的排序规则就是utf8mb4_0900_ai_ci.

2025-11-13 19:29:02 1033

原创 数据结构:Map和Set

int key;int value;Node next;

2025-10-25 19:56:44 874

原创 数据结构:排序

gap的初始值一般以数组长度/2常见.如何将分出来的小数组按顺序整理呢?和插入排序类似,将每。

2025-10-17 21:15:55 800

原创 数据结构:优先级队列(堆)

之前我们学过队列的概念,就是先入先出.优先级队列跟队列类似,却有不同.例如生活中,医院里面是正常排队,但是如果突然有一个病危的病人进来,肯定是要优先去救治,不能干等着,这就是相当于优先排队.这种情况下,优先级队列就有两个基本功能,一是返回优先级最高的对象,二是添加新的对象.

2025-10-15 19:02:11 882

原创 数据结构:二叉树

在学完前面的知识,我们知道链表和顺序表都是一种线性结构,一个前驱对应一个后继.而我们今天要了解的二叉树,是一种非线性结构.日常生活中,树有一个根,继而有主干发展成许多树枝,一根树枝又发展出更多的树枝.计算机中,树的结构也是如此.如上图所示,这是一颗树,有根节点A,然后由根节点发展出子节点B,C,D,然后继续发展.

2025-10-05 15:18:27 870

原创 数据结构:队列

学习完栈之后,知道栈是一种先入后出的结构.队列则是先入先出.跟排队结账一样,先排队的人先结账完成,后排队的人后结账完成.队列也是如此,先入队列的元素先出队列,后入队列的元素后出队列.

2025-09-21 20:44:43 1086

原创 数据结构:栈

栈:⼀种特殊的线性表,其只允许在固定的⼀端进⾏插⼊和删除元素操作。进⾏数据插⼊和删除操作 的⼀端称为栈顶,另⼀端称为栈底。栈中的数据元素遵守后进先出的原则。压栈:栈的插⼊操作叫做进栈/压栈/⼊栈,⼊数据在栈顶。出栈:栈的删除操作叫做出栈。出数据在栈顶。

2025-09-21 19:20:20 592

原创 数据结构:链表

什么是链表?链表的结构是什么样的?链表有哪些作用?看完本篇文章,可能会给你带来答案。在我们学习完顺序表之后,我们知道了顺序表的在计算机中的存储方式是连续的,那么与之相反,链表在计算机中的存储方式是非连续的。为什么要引入链表呢?链表和顺序表的差别在哪里呢?在顺序表中插入一个元素或者删除一个元素,我们需要将删除或插入元素的后续元素进行整体移动,这样使得效率变低.因此,我们引入了链表这个结构,它可以帮助我们更好的在中间位置进行插入或者删除.

2025-09-20 20:24:43 929

原创 初入数据结构:基于数组模拟实现ArrayList

我们要先数组长度是否够用,如果说元素个数大于等于数组长度时,显然就需要扩容操作,直接调用resize()方法即可,当数组大小够的时候,直接element赋给arr[size]即可。先把扩容后的数组长度算出来,然后创建一个新数组,之后把旧数组中的元素全部传递给新数组,再把arr的引用改为新数组,这样就完成了扩容操作。至于原来的数组,在没有引用指向它的时候,他就会被自动释放掉。在坐标合法的情况下,我们只需要将要删除坐标的后面的元素,从前往后依次向前挪一个,即可起到删除坐标元素的效果,最后别忘记将元素个数减一。

2025-04-27 21:10:35 493

原创 初入数据结构:顺序表和ArrayList

简单来说,泛型就是可以在类型定义时让方法不止适用一个类型。那么它的作用就是可以实现代码的重复利用。我们以前学过的数组,只能存放指定类型的元素,例如:int[] array=new int[10];而有了泛型之后,我们就可以用同一份代码创建出能存放不同类型的数组。让我们来看一下下面的代码在这里,我们可以看到我们将T的位置填入不同的类型之后,生成的数组就可以存放不同类型。泛型的基础语法:class 泛型类名称<泛型参数列表>{对于泛型,我们只需要知道泛型的作用以及如何实例化泛型即可。

2025-04-26 13:17:40 1274

原创 初入数据结构

本篇文章目标:1.什么是算法?什么是算法效率?2.什么是时间复杂度?3.什么是空间复杂度?以上代码写的怎么样?想要知道这个问题,我们就要先了解什么是算法.简单来说,算法就是通过一系列运算来得到结果的一个过程.比如,在计算同一个问题的时候,计算时间越短,计算所消耗的内存越少,那么这个算法就越好.由此,我们也就知道了算法的好坏,是根据时间和内存来决定的.这也就是算法效率.算法效率分析分为两种:第⼀种是时间效率,第⼆种是空间效率。时间效率被称为时间复杂度,⽽空间效率被称作空间复杂度。

2025-03-19 12:11:21 872 1

空空如也

空空如也

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

TA关注的人

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