自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MyBatis进阶

但是,这样也容易出问题,因为username属性也可以为空的,那么“,password”前面的这个逗号就无法去除,所以也是会报错的。对于上面的例子,不只是password为空,username也可以为空,同样,age也可以为空那么,就需要在每个字段和每个属性上都加上<if>首先,我重新设置了表的结构,将username,password,age字段设置成了可以为空,方便后面的演示。可以看到,不同的接口,使用了同样的SQL语句,那么我们就可以使用<sql>标签,将相同的SQL语句提取出来。

2026-07-02 19:45:28 324

原创 MyBatis初阶

MyBatis是一款持久层框架,用于简化JDBC的开发。MyBatis 是更简单完成程序和数据库交互的框架,也就是更简单的操作和读取数据库⼯具。#{} 和 ${} 的区别①.#{}为预编译SQL,通过“?”占位的方式,提前对SQL进行编译,会根据参数的类型添加引号' ',例如String类型,就会自动添加 ' ',由于是预编译的SQL,所以多次复用的话性能会更高②.${}参数采用字符串直接拼接的方式,如果是String类型的参数,那么需要手动添加引号' '

2026-07-02 12:18:52 364

原创 算法题目---BFS解决拓扑排序

关于“拓扑排序”,主要看图片中的内容来理解。

2026-06-30 21:33:35 201

原创 SpringBoot日志

可以看到,我只输入了一个Logger,就出现了六个同名称的类或接口,下面就介绍一下划线的这几个。事实上,Slf4j不同于其他日志框架,它并不是一个真正的日志实现,它只是对日志框架指定了一种规范。所有Slf4j并不能独立使用,需要和具体的日志框架配合使用。门面模式,又称为“外观模式”,提供了一个统一的接口,用于访问子系统中的一群接口,其主要特征就是定义了一个高层接口,让子系统更容易使用。Slf4j是门面模式的典型应用。门面模式包含了两种角色:外观角色:也称门面角色,系统对外的统一接口,例如Slf4j。

2026-06-23 20:54:40 243

原创 SpringBoot配置文件

在写“验证码”案例之前,先介绍一个工具,就是“Hutool”Hutool参考文档上面的链接是Hutool的参考文档,Hutool中,有很多的工具类库,我们可以通过引依赖的方式直接使用这些工具类。例如,我们要写的验证码案例,那个验证码就可以直接使用Hutool帮我们实现好的。

2026-06-23 12:29:51 179 1

原创 算法题目---多源BFS

关于“多源BFS”问题,通过一张图来给大家介绍。

2026-06-21 20:55:28 185

原创 Spring DI

DI,即“依赖注入”。“依赖注入”是一个过程,指的是IoC容器在创建Bean的时候,去提供运行时所依赖的资源(对象)。在上一篇博客中,我们使用了这个注解,完成了依赖注入的操作。简单的来说,Spring提供了三种DI的实现方式,下面一 一 介绍。

2026-06-21 10:30:00 348

原创 Spring IoC

Bean,即“对象”。在上面的图书管理系统案例中,我们把某个对象交给IoC容器管理,需要在类上添加一个@Component注解。事实上,Spring为了提供更好的web应用程序,提供了更多的注解Ⅰ.类注解:①.@Controller ②.@Component ③.@Configuration ④.Service ⑤.RepositoryⅡ.方法注解:①.@Bean。

2026-06-20 21:54:49 349

原创 算法题目---BFS解决最短路问题

最短路问题,是“图论”中的问题,当然,如果不知道图论问题,也不影响。在这里,主要介绍“边权为1的最短路问题”。那么,什么是最短路问题?通过一张图来看解决方法:从起点A开始,来一次BFS即可。

2026-06-15 18:50:53 186

原创 Spring MVC(2)--- 介绍响应数据,具体案例和三层架构

在写后端代码之前,先给大家介绍一个依赖,这个依赖为“lombook”“lombook”的作用主要是通过“注解”的方式,实现对类自动添加get(),set(),toString(),equals()等方法添加lombook的方式有多种,第一种就是通过maven仓库,搜索lombook,然后选择对应的版本即可;另一种是在idea中下载一个插件,叫做“EditStarters”这个插件的通就是可以直接导入Spring项目需要的依赖通过上面的步骤,就将lambook依赖添加进来了。

2026-06-13 12:20:45 280

原创 Spring MVC(1)---介绍Spring MVC 和 请求数据

Postman,可以理解为是一个测试工具,当我们写完代码后,都是需要进行测试的,这时候就可以使用Postman来进行测试。使用Postman进行测试和使用浏览器进行测试,本质上是一样的效果表单提交数据,通常用于提交图片或文件选择Body -> form-data 选项"age": 29,blast"]}, {"age": 39,reflexes"]}, {}]上面的代码就是一段JSON代码。

2026-06-12 18:27:11 251

原创 SpringBoot快速上手

pom⽂件中, 引⼊了两个依赖(1).spring-boot-starter-web:包含了web应⽤开发所需要的常⻅依赖(2).spring-boot-starter-test:包含了单元测试所需要的常⻅依赖上图是SpringBoot工程的父工程。所依赖的版本号,都是在父工程中统一管理。⽗⼯程指定版本号后, 就会⾃动引⼊和所指定版本对应的依赖, 创建的SpringBoot项⽬, 会继承SpringBoot⽗⼯程.对于SpringBoot项目来说,启动的时候,启动的是整个项目。

2026-06-12 09:24:39 237 1

原创 算法题目---BFS解决FloodFill算法问题

FloodFill算法,也称为“洪水灌溉”算法。通过一个图来看此时,方框表示一个区域,其中里面的负数表示这个部分是往下凹的,正数部分是往上凸的。如果此时发洪水了,那么首先,会将凹的部分填平此时,就会出现上图的结果。然后就会问,有多少部分被填平,或者是被填平的最大部分是多少。事实上,就是在找“性质相同的连通块”解决方法有两种:①.dfs ②.bfsdfs,深度优先遍历,采用递归的方式,一条路走到黑,直到走不了的时候就返回bfs,广度优先遍历,也称为层序遍历,一层一层的遍历。

2026-06-07 16:10:01 183 4

原创 算法题目---优先级队列

1046. 最后一块石头的重量 - 力扣(LeetCode)解法:使用优先级队列@Override});if (v1-v2!=0){

2026-06-02 19:56:08 588 2

原创 浅谈JVM

双亲委派模型”主要是描述了在“类加载”的过程中,根据 “全限定类名”,找到.class的过程。

2026-05-28 20:08:17 251 2

原创 数据链路层介绍和DNS协议

数据链路层的介绍,主要介绍“以太网协议”。“以太网协议”是的协议,只要电脑是通过进行上网,那么走的协议就是以太网协议。当然,如果使用的是wifi上网,那么使用的协议就是802.11。

2026-05-24 09:29:43 359 2

原创 算法题目---队列+宽搜(BFS)

队列,这个就不用多介绍了。在前面介绍数据结构的时候,介绍过。宽搜,就是宽度优先搜索,和层序遍历一样。宽搜广泛应用于树型结构,图论,最短路问题,迷宫问题等等。宽搜属于搜索类的算法,还有一个就是深搜。

2026-05-23 15:45:38 303 1

原创 网络层IP协议

关于IP协议,这里只会介绍两点,①.地址管理,使用IP协议,标识网络上某个设备的位置。②.路由选择,在两个通信的节点之间,规划出一个合理的路径。

2026-05-23 13:36:04 397

原创 传输层协议TCP

再看TCP的报文格式,其实就给大家介绍的差不多了。剩下的继续介绍。

2026-05-19 21:35:54 445

原创 传输层协议UDP

前面我们介绍完了应用层的HTTP和HTTPS协议。事实上,应用层的很多操作,都是调用传输层提供的接口的,这个接口就是 socket api(网络套接字),这个也在前面介绍过。TCP是依靠 ServerSocket 和 Socket;UDP是依靠 DatagramSocket 和 DatagramPacket下面主要先介绍UDP,TCP后面再介绍。

2026-05-17 16:43:16 514 1

原创 HTTPS

证书”,可以理解为一个第三方认证机构,这个机构是可信任的。①.证书的颁布机构②.证书的有效期限③.服务器的公钥④.服务器的拥有者(域名) ⑤.证书的数字签名[重点]数字签名,本质上就是一个被加密的校验和,把要校验的数据部分带入一个固定的公式,算出一个数字,类似于之前介绍过的hash函数校验和的计算:首先,先将①②③④这些相关信息作为输入,生成校验和,然后针对这个校验和进行加密,第三方认证机构会生成一对非对称密钥,然后使用私钥(pri2)进行加密,公钥(pub2)进行解密。

2026-05-16 17:41:33 1318

原创 算法题目---栈

栈,在前面介绍数据结构的时候,都介绍过。这里就不多说了,直接看题目。

2026-05-13 19:53:17 263

原创 应用层协议和http协议

自定义协议分成两个阶段在数据库的最后介绍JDBC的时候,我们创建完DataSource源对象后,设置了URL,user,passwordURL,就是用来描述网络上的唯一资源的位置的在JDBC中,我们创建URL的时候用的是同时现在我在CSND中搜索了个“你好”,URL就这样的可以通过一个例子来具体理解每个参数的含义假设,我现在要去吃一碗杨某福麻辣烫,然后这个杨某福麻辣烫在我们学校的位置是 “1餐厅,18号窗口”,然后我现在去了之后,选完了菜之后把菜给了服务员,然后告诉服务员说“

2026-05-08 18:11:42 385 1

原创 算法题目---字符串

字符串的算法题目,都是和别的算法结合来去出题的,例如,模拟,高精度加减等等。

2026-05-05 18:10:53 78 2

原创 算法题目---哈希表

从概括的角度来说,哈希表就是一个,在数据结构章节整体介绍过哈希表。

2026-05-01 13:01:56 220 1

原创 网络编程(二)---TCP字节流套接字编程

在使用TCP字节流套接字编程的时候,具体涉及到两个类,一个类是,另一个类是。

2026-04-30 14:43:49 420

原创 网络编程(一)---传输层协议和UDP数据报套接字编程

在传输层中,最重要的两个协议,一个是,另一个是在应用层中,操作系统提供了一组api,用于传输层给应用层提供服务,这组api又叫做,由于TCP和UDP的差别非常大,在进行代码编写的时候也是不同的风格,所以对于socket.api来说,提供了两套接口。

2026-04-29 20:06:45 541 1

原创 初识计算机网络

局域网,简称LAN。局域网内的所有主机可以相互进行网络通信,所以又被称为内网。如果一个局域网。在进行组建网络的时候,我们需要可以用到的设备有交换机和路由器。交换机可以将多台主机连接到一起,组成一个小型的局域网。路由器则可以将多个小型的局域网组建成一个更大的网络。

2026-04-28 17:32:29 435

原创 算法题目---链表

对于做链表的题目,具体有以下技巧1.画图。可以更直观和形象2.引入“虚拟头节点”。这要回可以少判断很多条件,并且头插的时候更方便3.不要吝啬空间,直接去定义4.使用快慢双指针的思想来解决链表问题5.链表中的常用操作①.创建新的节点我们直接new就可以了②.尾插③.头插这时候就体现出创建虚拟头节点的作用来了适合用于“逆序链表”

2026-04-21 20:51:31 224 3

原创 文件操作与IO流

就是操作系统进行资源管理的一种机制,很多的软件和硬件资源都抽象成“文件”来进行表示。例如,Java中的println和scanner,分别是控制台的标准输出和控制台的标准输入。就是保存到硬盘上的文件这里我们讨论的主要是对于我们平常说的“文件夹”是否是文件?这肯定是文件,但是在计算机的“标准术语”中叫做。

2026-04-16 17:58:48 379 3

原创 多线程---CAS,JUC组件和线程安全的集合类

效率更高,按照桶级别进行加锁要介绍清除ConCurrentHashMap,还是要先通过HashTable进行入手这是HashTable的构造此时任意两个线程访问任意的两个不同元素,都会产生“锁竞争”如上图所示,此时就会出现“锁竞争”,但是如果修改的两个元素在不同的链表上,那么本身就不会涉及到线程安全问题如果修改的是同一个链表上的两个元素,可能会出现线程安全问题,例如两个元素查到同一个元素的后面就可能出现锁竞争。

2026-04-11 16:40:06 398 5

原创 多线程---锁策略和synchronized()的优化

synchronized锁是自适应的,不是读写锁,可重入锁,非公平锁。

2026-04-11 12:17:54 390

原创 算法题目--- 分治、快排和分治、归并

【代码】算法题目--- 分治、快排和分治、归并。

2026-04-08 21:03:21 232 1

原创 多线程--- 定时器

定时器,类似于闹钟,如果时间到了,就会执行一些逻辑在Java开发文档中,使用作为了定时器的类。

2026-04-06 16:31:41 734

原创 多线程---阻塞队列收尾和线程池

Java 标准库中也提供了直接使用的线程池其中,核心方法为submit(Runnable runnable)方法,通过runnable描述一段要执行的任务,通过submit()方法将任务放到线程池中,此时线程池里的线程就会执行这样的任务有四个构造方法,最后一个构造方法的参数最多,所以直接介绍最后一个构造方法:“核心线程数”,表示线程池中最少有多少个线程,线程池一旦创建,这些线程也就随之创建了,直到这个线程池销毁,这些线程也就随之销毁了。

2026-04-06 14:34:41 506

原创 算法题目---模拟

模拟”算法,只需要 “比着葫芦画瓢”即可“模拟”算法的特点就是思路比较简单,主要是考察代码能力在做“模拟”算法题的时候,一定要知道算法流程,然后把流程转化成代码。

2026-04-01 20:21:06 358

原创 多线程---指令重排序和阻塞队列

想要明白什么是指令重排序,就要先明白什么是“单例模式”

2026-04-01 11:30:00 535

原创 多线程---内存可见性,wait()和notify()

在多线程的场景下,一个线程读取,另一个线程修改,修改线程修改的值,但是并没有被读线程读到,此时就称这个问题为“内存可见性”问题。

2026-03-31 12:09:54 370

原创 算法题目---位运算

解法:位运算。

2026-03-27 16:07:55 248

原创 多线程---线程安全和锁

main线程先在thread1.join()中阻塞等待,thread2结束,main线程在thread1.join()中继续阻塞等待,thread1结束,thread.join()继续执行,main执行到 thread2.join(),由于thread2 已经结束了,此时thread2.join()是不会阻塞的,main线程继续执行后续的打印,最终打印的的就是thread1和thread2都执行完的值。针对加了多层锁的情况,JVM会先引入一个计数器,初始化成0,每次触发"{"的时候,计数器++;

2026-03-23 14:42:13 411

空空如也

空空如也

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

TA关注的人

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