自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【JavaEE进阶】Spring AOP使用篇

创建一个注解类(和创建Class文件一样的流程, 选择Annotation就可以了)代码简单说明, 了解即可, 不做过多的解释1. @Target 标识了 Annotation 所修饰的对象范围, 及该注解可以用在什么地方.常用取值:ElementType.TYPE: 用于描述类, 接口(包括注解类型)或 enum 声明ElementType.METHOD: 描述方法ElementType.PARAMETER: 描述参数ElementType.TYPE_USE: 可以标注任意类型。

2024-06-27 22:48:52 896 2

原创 【JavaEE进阶】Spring统一功能处理:统一异常处理和统一结果返回

2.降低前端程序员和后端程序员的沟通成本,按照某个格式实现就可以了, 因为所有接口都是这样返回的.4.有利于后端技术部门门]的统一规范的标准制定,不会出现稀奇古怪的返回内容.在图书管理系统中的强制登录的过程中, 我们共做了两步工作。1.方便前端程序员更好的接收和解析后端数据接口返回的数据。在多次测试不同的返回结果之后, 发现只有返回结果为。2.对后端返回数据进行封装, 告知前端处理的结果。类名, 方法名和返回值可以自定义, 重要的是注解。要进行处理,其他的不进行处理.接口返回为数据是, 需要加上。

2024-06-25 23:59:15 806

原创 【JavaEE进阶】Spring统一功能处理:拦截器的使用

定义拦截器: 实现HandlerInterceptor接口, 并重写其所有方法@Slf4j@Overridelog.info("LoginInterceptor ⽬标⽅法执⾏前执⾏..");@Overridelog.info("LoginInterceptor ⽬标⽅法执⾏后执⾏");@Overridelog.info("LoginInterceptor 视图渲染完毕后执⾏,最后执⾏");

2024-06-18 09:53:58 873 1

原创 【JavaEE进阶】Cookie和Session详解

Cookie是服务器传给客户端的体积很小的纯文本文件。客户端请求服务器,如果服务器需要记录该用户状态,就向客户端浏览器发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。HTTP协议自身是属于"无状态"协议."无状态"的含义指的是:默认情况下HTTP协议的客户端和服务器之间的这次通信,和下次通信之间没有直接的联系.

2024-04-07 09:18:58 1224 47

原创 【JavaEE进阶】SpringMVC中的常用注解和用法

是应用程序中最常被用到的注解之一, 它是用来注册接口的路由映射的.表示服务收到请求时, 路径为/sayHi的请求就会调用sayHi这个方法的代码.当用户访问一个URL时,将用户的请求对应到程序中某个类的某个方法的过程就叫路由映射.既然已经可以达到我们的⽬的了, 我们为什么还要加呢?我们把去掉, 再来访问⼀次:可以看到, 程序报了404, 找不到该页⾯.这就是起到的作用.一个项目中,会有很多类,每个类可能有很多的方法,Spring程序怎么知道要执行哪个方法呢?

2024-04-05 21:52:05 1599 56

原创 Linux: linux常见操作指令

查看 Linux 主机 ip在终端下敲ifconfig指令, 查看到 ip 地址。

2024-04-04 22:36:19 827 1

原创 【JavaEE】网络原理: HTTPS协议相关内容

HTTPS也是一个应用层协议, 是在HTTP协议的基础上引入了一个加密层.HTTP协议内容都是按照文本的方式明文传输的, 这就导致在传输过程中出现一些被篡改的情况.

2024-02-26 22:59:10 970 7

原创 【JavaEE】网络原理: HTTP协议相关内容

思考问题:为什么HTTP报文中要存在"空行"?因为HTTP协议并没有规定报头部分的键值对有多少个. 空行就相当于是"报头的结束标记", 或者是"报头和正文之间的分隔符".HTTP在传输层依赖TCP协议, TCP是面向字节流的. 如果没有这个空行,就会出现"粘包问题".

2024-02-22 11:24:39 1302 2

原创 【JavaEE】网络原理: UDP协议和TCP协议的相关内容

网络通信中, 协议是一个非常重要的概念. 协议进行了分层, 此处就是按照这几层顺序来介绍每一层中的核心协议.

2024-02-14 10:03:32 1419 3

原创 【JavaEE】网络原理:UDP数据报套接字编程和TCP流套接字编程

1.1 DatagramSocketDatagramSocket 是UDP Socket,用于发送和接收UDP数据报。DatagramSocket 的构造方法:方法签名方法说明DatagramSocket()创建⼀个UDP数据报套接字的Socket,绑定到本机任意⼀个随机端口(⼀般用于客户端)DatagramSocket(int port)创建⼀个UDP数据报套接字的Socket,绑定到本机指定的端口(⼀般用于服务端)

2024-01-27 20:03:26 1342 12

原创 【JavaEE】网络原理: 网络编程套接字(概念)

网络编程,指网络上的主机,通过不同的进程,以编程的方式实现网络通信 (或称为网络数据传输)。当然,我们只要满足进程不同就行;所以即便是同一个主机,只要是不同进程,基于网络来传输数据,也属于网络编程.特殊的,对于开发来说,在条件有限的情况下,一般也都是在一个主机中运行多个进程来完成网络编程。进程A:编程来获取网络资源进程B:编程来提供网络资源。

2024-01-27 17:14:26 1270 1

原创 【JavaEE】网络原理:网络中的一些基本概念

协议分层是将网络协议按照不同的功能和层次进行分组和组织的一种方式。它将复杂的网络通信过程划分为多个层次,每个层次负责特定的功能和任务。

2024-01-20 22:05:32 1348 13

原创 【JavaEE】文件操作: File 类的用法和 InputStream, OutputStream 的用法

Java 中通过 java.io.File 类来对⼀个文件(包括目录)进行抽象的描述。注意,有 File 对象, 并不代表真实存在该文件。我们先来看看 File 类中的常见属性、构造方法和方法方法修饰符及返回值类型方法签名说明intread()读取⼀个字节的数据,返回 -1 代表已经完全读完了int最多读取 b.length 字节的数据到 b 中,返回实际读到的数量;-1 代表已经读完了int最多读取 len - off 字节的数据到 b 中,从 off 开始,返回实际读到的数量;

2024-01-18 14:23:37 1905 12

原创 【JavaEE】多线程(7) -- 线程池的概念和简单实现

以最后一个构造方法为例:Java的 ThreadPoolExecutor 是一个线程池执行器,用于管理和调度线程的执行。1.corePoolSize:核心线程数即线程池中保持活动状态的最小线程数。如果线程池中的线程数小于corePoolSize,则即使其他线程是空闲的,ThreadPoolExecutor也会创建新的线程来处理任务。2.maximumPoolSize:最大线程数即线程池中允许的最大线程数。

2023-12-30 19:24:08 2037 13

原创 【JavaEE】多线程(6) -- 定时器的使用及实现

它允许开发人员在指定的时间间隔内重复执行任务,或在指定的延迟之后执行任务。定时器是Java提供的一种方便的工具,用于处理需要定期执行的任务,例如定时任务调度、定时数据备份等。2. Task 类⽤于描述⼀个任务(作为 Timer 的内部类). ⾥⾯包含⼀个 Runnable 对象和⼀个 time(毫秒时 间戳) 这个对象需要放到优先队列 中. 因此需要实现 Comparable 接⼝。定时器也是软件开发中的⼀个重要组件. 类似于⼀个 "闹钟". 达到⼀个设定的时间之后, 就执⾏某个指定好的代码。

2023-12-28 22:43:51 708 15

原创 【JavaEE】多线程(5) -- 阻塞队列

上述过程中, A 和 B , A 和 C 之间的耦合性是比较轻的, A中的代码需要设计到一些B相关的操作, B中的代码也涉及到和A相关的操作, A 的代码中也需要涉及和 C 相关的操作, C 的代码也涉及和 A 相关的操作, 另外, 如果 B 或者 C 服务器出现故障, 对 A 的影响就很大.⽣产者和消费者彼此之间不直接通讯,⽽通过阻塞队列来进⾏通讯,所以⽣产者⽣产完数据之后不⽤ 等待消费者处理,直接扔给阻塞队列,消费者不找⽣产者要数据,⽽是直接从阻塞队列⾥取.此时进程并会不结束.

2023-12-17 22:04:18 1196 5

原创 【JavaEE】多线程(4) -- 单例模式

设计模式好⽐象棋中的 "棋谱". 红⽅当头炮, ⿊⽅⻢来跳. 针对红⽅的⼀些⾛法, ⿊⽅应招的时候有⼀ 些固定的套路. 按照套路来⾛局势就不会吃亏.软件开发中也有很多常⻅的 "问题场景". 针对这些问题场景, ⼤佬们总结出了⼀些固定的套路. 按照这 个套路来实现代码, 也不会吃亏.

2023-12-17 15:37:37 1318 1

原创 【JavaEE】多线程(3) -- 线程等待 wait 和 notify

由于线程之间是抢占式执⾏的, 因此线程之间执⾏的先后顺序难以预知. 但是实际开发中有时候我们希望合理的协调多个线程之间的执⾏先后顺序.完成这个协调⼯作, 主要涉及到三个⽅法注意: wait, notify, notifyAll 都是 Object 类的⽅法。

2023-12-03 14:42:21 2253 50

原创 【JavaEE】多线程 -- 死锁问题

其实, 问题的关键是,这两次加锁, 其实是在同一个线程上进行的. 由于是同一个线程, 此时锁对象就知道了第二次加锁的线程, 第二次加锁操作就可以直接放行通过, 不会出现阻塞. 这个特性称为 "可重入".这个代码只管上看起来, 好像是有锁冲突的, 此时的 locker 对象已经是加锁的状态, 在尝试对 locker 加锁, 不应该会出现阻塞问题吗?使用可重入锁, 可以避免代码出现死锁问题, 如果使用的不是可重入锁, 就会出现死锁问题.

2023-11-30 22:13:46 1102 7

原创 【JavaEE】多线程 (2) --线程安全

执行上面的代码,我们发现结果并不是100000, 并且多次运行, 每次的结果都有所不同:这就是线程不安全的一个例子.

2023-11-26 22:57:43 1376 69

原创 【JavaEE】多线程 (1)

⼀个线程就是⼀个 "执⾏流". 每个线程之间都可以按照顺序执⾏⾃⼰的代码. 多个线程之间 "同时" 执⾏ 着多份代码.

2023-11-25 20:43:50 1783 64

原创 【MySql】MySql表的增删查改

- 新增insert into 表(字段1, ..., 字段N) values (value1, ..., value N);-- 多行插入insert into 表(字段1, ..., 字段N) values-- 全列查询select * from 表-- 指定列查询select 字段1,字段2... from 表-- 查询表达式字段select 字段1+100,字段2+字段3 from 表-- 别名select 字段1 别名1, 字段2 别名2 from 表。

2023-11-06 13:32:10 868 1

原创 【MySql】数据库基础

- 显示-- 创建-- 使用use xxx;-- 删除常用数据类型:INT:整型DECIMAL(M, D):浮点数类型VARCHAR(SIZE):字符串类型TIMESTAMP:日期类型-- 查看show 表;-- 创建create table 表名(字段1 类型1,字段2 类型2,...-- 删除drop talbe 表名;

2023-10-29 16:09:30 182

原创 【C语言】位段,枚举和联合体详解

什么是位段位段的声明和结构体是类似的,有两个不同:1.位段的成员必须是 int、unsigned int 或 signed int 。2.位段的成员名后边有一个冒号和一个数字。

2023-08-22 21:17:19 1928 152

原创 【C语言】什么是结构体内存对齐?结构体的大小怎么计算?

结构体内存对齐(Struct Memory Alignment)是指编译器在分配结构体变量的内存空间时,按照一定规则对结构体成员进行排列,以保证结构体的访问效率和内存对齐要求。在计算机中,访问内存的速度是有限的,而且通常是按照特定的字节大小进行的。为了提高内存访问的效率,许多计算机体系结构要求特定类型的数据在内存中的地址必须是某个特定值的倍数。这个特定值通常是数据类型的大小或者是处理器的字长。

2023-08-20 22:23:30 1252 91

原创 【C语言】字符函数和字符串函数

拷贝num个字符从源字符串到目标空间。如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加0,直到num个。使用示例int main()return 0;

2023-08-19 16:26:05 2051 87

原创 【数据结构】二叉树链式结构的实现及其常见操作

在学习二叉树的基本操作前,需先要创建一棵二叉树,然后才能学习其相关的基本操作。由于现在我们对二叉树结构掌握还不够深入,为了降低学习成本,此处手动快速创建一棵简单的二叉树,快速进入二叉树操作学习,等二叉树结构了解的差不多时,我们反过头再来研究二叉树真正的创建方式。这样我们就写出了一个简单的二叉树。

2023-08-17 09:03:09 1439 120

原创 【数据结构】堆的实现,堆排序以及TOP-K问题

向堆中插入一个元素,我们可以将这个元素插入到堆的尾部,因为堆的实际存储结构是一个数组,我们可以将元素放到数组末尾,但如果仅仅是插入到数组末尾的话,会将堆的结构给破环,我们还需要调用一个向上调整的函数,来调整各个节点间的大小关系。弹出元素就是将堆顶的元素给删除,但我们不能直接进行删除,这样会将堆的结构给破坏,正确的方法是先将堆顶的元素和最后的元素进行交换,这样保证的首元素的左子树和右子树依然是堆的形态,然后将size自减,最后调用一个堆的向下调整函数。这里写的是小根堆,大根堆可以在小根堆的基础上稍作修改。

2023-08-15 07:45:42 2304 181

原创 【数据结构】树和二叉树的概念及结构

树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。若一个节点含有子节点,则这个节点称为其子节点的父节点;完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。从根开始定义起,根为第1层,根的子节点为第2层,以此类推;也就是说,如果一个二叉树的层数为K,且结点总数是。以某节点为根的子树中任一节点都称为该节点的子孙。一个节点含有的子树的根节点称为该节点的子节点;要注意的是满二叉树是一种特殊的完全二叉树。一个节点含有的子树的个数称为该节点的度;

2023-08-13 20:11:46 2813 126

原创 【JavaSE】接口的语法知识和使用方法总结

在现实生活中,接口的例子比比皆是,比如:笔记本上的USB口,电源插座等。电脑的USB口上,可以插:U盘、鼠标、键盘...所有符合USB协议的设备电源插座插孔上,可以插:电脑、电视机、电饭煲...所有符合规范的设备通过上述例子可以看出:接口就是公共的行为规范标准,大家在实现时,只要符合规范标准,就可以通用。 在Java中,接口可以看成是:多个类的公共规范,是一种引用数据类型。接口的定义格式与定义类的格式基本相同,将class关键字换成 interface 关键字,就定义了一个接口。 提示:1. 接口类型是一种

2023-08-10 07:07:39 694 108

原创 【JavaSE】什么是抽象类?什么是内部类?以及它们的作用是什么?

这篇文章我们主要学习的是两个知识点,可以来解决文章标题所提出来的两个问题:什么是抽象类?什么是内部类?以及它们的作用是什么?

2023-08-08 07:41:44 723 145

原创 【JavaSE】String类中常用的字符串方法(超全)

1.求字符串的长度2.判断字符串是否为空3.String对象的比较3.1 判断字符串是否相同3.2 比较字符串大小3.3 忽略大小写比较4.字符串查找5.转化5.1数值和字符串转化5.1.1 数字转字符串 valueof5.1.2 valueOf的其他用法5.1.3 字符串转数字5.2大小写转换小写转大写大写转小写5.3 字符数组转字符串5.4字符串转数组5.5格式化6.字符串替换7.字符串拆分8.字符串截取

2023-08-07 16:07:27 806 105

原创 【JavaSE】面向对象编程思想之多态(图文详解)

多态的概念:通俗来说,就是多种形态,总的来说:同一件事情,发生在不同对象身上,就会产生不同的结果。

2023-08-06 17:41:52 852 107

原创 【JavaSE】面向对象编程思想之继承

继承是一种一种思想,他实现的是对共性进行抽取,从而达到代码复用的效果。注意:1. 子类会将父类中的成员变量或者成员方法继承到子类中了2. 子类继承父类之后,必须要新添加自己特有的成员,体现出与基类的不同,否则就没有必 要继承了。

2023-08-04 02:00:00 1108 147

原创 【JavaSE】初步认识类和对象

2.1 类的定义格式在java中定义类时需要用到class关键字,具体语法如下class为定义类的关键字,ClassName为类的名字,{}中为类的主体。类中包含的内容称为类的成员。属性主要是用来描述类的,称之为类的成员属性或者类成员变量。方法主要说明类 具有哪些功能,称为类的成员方法。//属性//行为方法上面定义了一个名为Person的类,该类具有以下属性和行为方法:name:用于存储人的姓名的字符串变量。age:用于存储人的年龄的整数变量。

2023-08-01 23:03:58 831 85

原创 【JavaSE】Java方法的使用

方法就是一个代码片段. 类似于 C 语言中的 "函数"。方法存在的意义(不要背, 重在体会):1. 是能够模块化的组织代码(当代码规模比较复杂的时候).2. 做到代码被重复使用, 一份代码可以在多个位置使用.3. 让代码更好理解更简单.4. 直接调用现有方法开发, 不必重复造轮子.方法语法格式比如:实现一个两个整数相加的方法return x+y;写一个方法,检测一个年份是否为闰年【注意事项】1. 修饰符:现阶段直接使用public static 固定搭配。

2023-07-31 08:08:24 902 105

原创 【JavaSE】数组的定义与使用

可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。比如现实中的车库:在java中,包含6个整形类型元素的数组,就相当于上图中连在一起的6个车位,从上图中可以看到:1. 数组中存放的元素其类型相同2. 数组的空间是连在一起的3. 每个空间有自己的编号,其实位置的编号为0,即数组的下标。

2023-07-30 11:22:30 1112 89

原创 【JavaSE】运算符

计算机的最基本的用途之一就是执行数学运算,比如:上述 + 和 < 等就是运算符,即:对操作数进行操作时的符号,不同运算符操作的含义不同。作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下:算术运算符(+ - * /)、关系运算符(< > ==)、逻辑运算符、位运算符、移位运算符以及条件运算符等。

2023-07-26 18:11:08 1218 83

原创 【JavaSE】数据类型与变量

字节是计算机中表示空间大小的基本单位.计算机使用二进制表示数据. 我们认为 8 个二进制位(bit) 为一个字节(Byte).我们平时的计算机为 8GB 内存, 意思是 8G 个字节.其中 1KB = 1024 Byte, 1MB = 1024 KB, 1GB = 1024 MB.所以 8GB 相当于 80 多亿个字节。

2023-07-25 21:52:14 702 104

原创 【javaSE】初识Java

【本节目标】1. Java语言简介、发展概述、语言优势、与C/C++区别2. 初识Java程序入口之main方法3. 注释、标识符、关键字。

2023-07-25 09:31:33 4202 97

空空如也

空空如也

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

TA关注的人

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