自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RabbitMQ入门

RabbitMQ 是一个开源的消息中间件(Message Broker),实现了消息队列的功能,允许不同的应用程序或服务之间通过消息进行异步通信。RabbitMQ 采用 Erlang 语言实现了AMQP(Advanced Message Queuing Protocol,高级消息队列协议)标准,提供了可靠的消息传递、队列管理、消息路由等功能

2024-11-23 09:00:00 360 4

原创 Java 枚举

枚举(enum):是一种特殊的类,用于定义一组常量,将其组织起来。枚举使得代码更具有可读性和可维护性,特别是在处理固定集合的值时,如:星期、月份、状态码等

2024-11-08 09:00:00 1976 113

原创 Spring AOP

AOP(Aspect-Oriented Programming,面向切面编程):是一种软件开发的编程范式,旨在将横切关注点(cross-cutting concerns)与核心业务逻辑分离,以提高代码的模块化性、可维护性和复用性

2024-11-04 09:00:00 2932 95

原创 Java 反射

反射(reflection)是 Java 中的一项特性,它允许程序在运行时查询和操作类的信息。即,在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能调用它的任意方法和属性。获取到方法和属性后,就可以对其进行修改。这种动态获取信息以及动态调用对象方法的功能也就是Java的反射机制

2024-11-01 09:00:00 4312 95

原创 Java 泛型

泛型是在 JDK 1.5 引入的新语法,是 Java 中的一个特性,在定义类、接口或方法时,使用类型参数来提高代码的灵活性和可重用性。通过泛型,可以在编写代码时不指定具体的类型,而是在使用时再指定,从而实现更通用的代码

2024-10-27 09:00:00 3594 102

原创 KMP 算法

KMP 算法是一种改进的字符串匹配算法,利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。文章介绍了KMP算法为什么不需要在主串中进行回退、如何计算next数组、next数组的优化以及如何查找所有匹配成功的起始位置

2024-10-20 09:00:00 3363 103

原创 BF 算法

BF算法:即暴力(Brute Force)算法,是一种模式匹配算法,将目标串 S 的第一个字符与模式串 T 的第一个字符进行匹配,若相等,则继续比较 S 的第二个字符和 T 的第二个字符;若不相等,则比较 S 的第二个字符和 T 的第一个字符,依次比较下去,直到得出最后的匹配结果

2024-10-16 09:00:00 3437 73

原创 static

static 是静态的意思,可以用来修饰成员变量、成员方法

2024-10-14 09:00:00 805 72

原创 Java 继承

继承(inhertance):是面向对象编程的特征,它允许在保持原有类的基础上进行扩展,增加新的功能,这样产生的新类,称之为派生类。通过继承,能够实现共性的抽取,从而实现代码的复用

2024-10-09 09:00:00 3429 93

原创 二分查找算法

二分查找是一种高效的搜索算法,适用于在一组数据中中查找某个特定元素,其基本思路是通过不断将查找范围减半来快速定位目标元素。接下来,我们就通过具体的问题,来学习二分查找34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode)

2024-10-02 09:00:00 1067 47

原创 Java 代码块

代码块指使用 {} 定义的一段代码,根据代码块定义的位置和关键字,可将其分为以下四种:普通代码块、构造块、静态块、同步代码块

2024-09-29 09:00:00 2352 84

原创 找到字符串中所有字母异位词、串联所有单词的子串

找到字符串中所有字母异位词:给定两个字符串s和p,找到s中所有p的异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序

2024-09-26 09:00:00 724 35

原创 两数之和、三数之和、四数之和

若 nums[left] + nums[right] < target,此时 nums[right] 为最大值,不能再增加了,因此我们需要让 nums[left] 变大,因此 left++,让 nums[left] 增加。若 nums[left] + nums[right] > target,此时 nums[left] 为最小值,不能再减小了,因此,我们让 right--,减小 nums[right] 的值,从而让两数之和减小。

2024-09-24 09:00:00 1184 85

原创 双指针算法

双指针算法是一种常用的算法,主要用于处理数组和链表中的问题。特别是需要在集合中查找、排序或计算时,可以通过两个指针来优化时间复杂度和空间复杂度。双指针有两种常见的形式:对撞指针和快慢指针

2024-09-21 09:00:00 944 93

原创 JDBC 编程

JDBC(Java Database Connectivity):Java数据库连接,是一种用于执行 SQL 语句的Java API,是 Java 数据库连接规范,为 Java 开发人员操作数据库提供了一个标准的 API,可以为多种关系数据库提供统一访问

2024-09-19 09:00:00 1631 67

原创 MySQL事务

事务是一组操作的集合,这组操作要么全部成功,要么全部失败,以确保数据的一致性和完整性

2024-09-18 09:00:00 1399 59

原创 MySQL索引

索引(index)是用于提高查询性能的数据结构。可以大大加快数据检索速度,但会增加写入和存储的开销

2024-09-17 09:00:00 1319 54

原创 MySQL数据的增删改查(二)

在学习了基本的增删查改后,我们来继续学习约束、如何设计表以及聚合查询、联合查询等查询操作

2024-09-15 09:00:00 981 18

原创 MySQL数据的增删改查(一)

在本篇文章中,我们来学习 C(create 增加)R(retrieve 查询)U(update 更新)D(delete 删除),即数据的增删改查

2024-09-13 09:00:00 3552 64

原创 MySQL数据表操作

在学习了数据库操作之后,我们接着来学习数据表的相关操作,包括常见的数据类型,数据表的创建、修改和删除

2024-09-11 09:00:00 1604 65

原创 MySQL 数据库基础

数据库是一个用于存储、管理和检索数据的系统,可以组织和保存大量的数据,使得数据能够被高效地访问、更新和管理

2024-09-09 09:00:00 2758 70

原创 数据链路层

数据链路层是 TCP/IP 五层协议模型中的第二层,主要负责在相邻的网络节点之间传输数据帧,在本篇文章中,我们来学习以太网、帧、MAC地址、ARP等

2024-09-07 09:00:00 1367 54

原创 IP 协议

网络层负责在复杂的网络环境下确定一个合适的路径。IP 协议是网络层中的重要协议,在本篇文章中,我们就来学习 IP 协议

2024-09-05 09:00:00 1887 69

原创 TCP协议

TCP(Transmission Control Protocol 即传输控制协议)是传输层的重要协议之一,对数据的传输进行详细的控制

2024-09-03 09:00:00 1625 57

原创 网络基础知识

本文介绍了网络基础知识,包括网络的发展、局域网、广域网、OSI 七层模型、TCP/IP 五层模型、封装和分用等

2024-08-31 09:00:00 1561 56

原创 线程安全问题

若某个代码,无论是在单个线程下执行,还是在多个线程下执行,都不会产生 bug,则这种情况就称为线程安全;而如果这个代码在单线程下正确运行,但在多线程下,就可能会产生 bug,则这种情况就称为线程不安全或存在线程安全问题,即若多线程环境下代码运行的结果是符合我们预期的(在单线程环境下应该的结果),则说明是 线程安全 的i < 5000;});i < 5000;});t1.start();t2.start();t1.join();

2024-08-19 09:00:00 860 35

原创 wait 和 notify

由于线程之间是的,因此,线程之间执行的先后顺序难以预知,但是,在实际开发中,有时候我们希望合理的协调多个线程之间的执行先后顺序例如:在篮球场上,每个队员都是独立的 执行流,也就是一个 线程当需要完成一个具体的得分动作时,就需要多个队员相互配合,按照一定的顺序执行一定的动作,线程 1 先向 线程 2 "传球",线程2 才能 "扣篮"要完成 协调工作,主要涉及到三个方法:wait()/wait(long timeout):让当前线程进入等待状态notify():唤醒当前对象上等待的线程。

2024-08-17 08:51:04 1284 53

原创 线程的状态

在我们调试多线程代码时,线程的状态可以作为调试的重要依据,在 Java 中,线程有以下几种状态:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED

2024-08-16 09:00:00 1167 42

原创 Thread 类的基本用法

一个线程就是一个 "执行流",,多个线程之间 "同时" 执行着多份代码创建线程比创建进程更快销毁进程比销毁线程更快调度线程比调度进程更快线程是操作系统中的概念,操作系统内核实现了线程这样的机制,并且对用户层提供了一些 API 供用户使用(如 Linux 的 pthread 库)而在 Java 标准库中,将这些 API 进行了封装,因此我们可以直接使用类来实现多线程程序。

2024-08-14 09:00:00 1286 46

原创 进程和线程

进程(Process)是操作系统提供的一种 "软件资源",是操作系统对一个正在运行的程序的一种抽象,即,可以把进程看做程序的一次运行过程,进程依赖于程序运行而存在。线程,也可以称为 轻量级进程,在进程的基础上做出了改进,保持了 独立调度执行这样的 并发支持,同时省去了 分配资源、释放资源 带来的额外开销

2024-08-10 09:00:00 1321 54

原创 JVM(Java虚拟机)

JVM 作为 Java 的核心组成部分,提供了丰富的功能和机制,在本篇文章中,我们主要学习 JVM 的内存区域划分、类加载机制 和 垃圾回收算法

2024-07-31 09:00:00 1211 47

原创 HTTPS

HTTP 协议内容都是按照文本的方式进行明文传输的,这就导致在传输过程中比较危险,可能会被黑客劫持,从而窃取用户隐私信息,或是篡改内容,而 HTTPS 则在 HTTP 的基础上进行了加密,进一步保证用户的信息安全

2024-07-29 09:00:00 1002 61

原创 HTTP详解

超文本是一种。

2024-07-27 09:00:00 15044 42

原创 SpringBoot实现图形验证码

验证码的实现方式有很多,可以由前端实现,也可以由后端进行实现,也有很多的插件和工具包可以使用,在这里,我们使用 Hutool 提供的小工具实现

2024-07-16 09:00:00 3657 59

原创 SpringMVC 请求参数接收

在浏览器与程序进行交互时,主要分为将用户(浏览器)和 Java 程序连接起来,也就是访问一个地址能够调用到 Spring程序用户请求时会携带一些参数,在程序中要想办法获取到参数,因此请求这部分主要是的功能在执行了业务逻辑之后,要将程序执行的结果返回给客户,也就是响应在本篇文章中,我们来学习请求(获取参数 )这部分内容。

2024-06-27 09:00:00 1905 44

原创 图书管理系统(详解版 附源码)

本篇文章实现了图书管理系统,完成功能包括用户注册登录,图书的增删查改,完整源码放在文末,需要自取

2024-06-25 09:00:00 3752 31

原创 JWT令牌技术

是一种用于身份验证和授权的方法,常用于网络安全和信息技术领域。在计算机系统中,令牌是一种用于证明用户身份或授权访问的凭证,可以是基于硬件的安全令牌,也可以是基于软件的生成代码或数据。令牌技术允许用户获取一个特定的令牌后,在之后的通信中使用该令牌来证明自己的身份或获得授权。

2024-06-09 09:00:00 2211 48

原创 拦截器(Interceptor)

拦截器(Interceptor)是Spring框架提供的核心功能之一,主要用于拦截用户请求,在指定方法前后,根据业务需求执行预先设定的代码拦截器允许开发人员提前预定义一些逻辑,在用户的请求响应前后执行,也可以在用户请求前阻止其执行,在拦截器当中,开发人员可以在应用程序中做一些通用性的操作例如,可以通过拦截器拦截前端发来的请求,判断Session中是否有登录用户的信息,若有,则放行;若没有,则进行拦截在了解了什么是拦截器之后,我们来学习如何实现拦截器。

2024-06-05 09:00:00 1408 45

原创 密码加密及验证

摘要算法也称为哈希函数,是一种将任意长度的输入消息转换为固定长度的输出值(哈希值)的算法。同样的,我们将加密的过程看做数学中计算y = f(x)的过程,其中 x 为明文,y 为密文,f( )表示加密算法对于摘要算法,可以通过y = f(x)计算密文,而无法通过密文计算明文固定长度输出:摘要算法生成的哈希值长度是固定的,不受输入消息长度的影响。唯一性:对于不同的输入消息,摘要算法应该生成不同的哈希值。

2024-06-03 09:00:00 1828 35

原创 Spring事务

指作为单个逻辑工作单元执行的一系列操作,是一组操作的集合,是一个不可分割的操作。在数据库管理系统中,事务通常用于确保数据库操作的原子性、一致性、隔离性和持久性。事务会把所有的操作作为一个整体,一起向数据库提交或是撤销操作的请求,这组操作要么同时成功,要么同时失败。

2024-05-23 09:00:00 1254 47

空空如也

空空如也

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

TA关注的人

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