自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 网络原理-HTTP/HTTPS

HTTP/HTTPS协议解析摘要 HTTP是应用层协议,采用文本格式传输数据,通过请求/响应模型实现客户端与服务器通信。请求包含方法(GET/POST)、URL、报头和正文;响应由状态码、报头和正文组成。HTTPS在HTTP基础上引入加密层,通过对称加密传输数据,非对称加密交换密钥,数字证书验证身份,有效防止中间人攻击。密钥交换过程:1)客户端验证证书有效性;2)用服务器公钥加密对称密钥;3)建立安全通道传输加密数据。HTTPS通过三层密钥机制(证书验证、密钥协商、数据加密)保障传输安全,解决了HTTP明文

2026-01-06 22:22:42 1109 1

原创 Spring原理

本文摘要: Spring框架中Bean的作用域包括6种:单例(singleton)、原型(prototype)、请求(request)、会话(session)、应用(application)和websocket。默认情况下Bean是单例模式,通过@Scope注解可修改作用域。Bean生命周期包含5个阶段:实例化、属性赋值、初始化、使用和销毁。SpringBoot自动配置通过@SpringBootApplication实现,它组合了@ComponentScan、@EnableAutoConfiguration

2025-12-26 18:03:51 725 2

原创 Spring事务和事务传播机制

本文介绍了事务的概念及其在Spring中的实现。事务是一组不可分割的操作,确保操作要么全部成功,要么全部失败。Spring提供了编程式和声明式两种事务管理方式,重点讲解了基于@Transactional注解的声明式事务。详细分析了@Transactional的三个关键属性:rollbackFor(异常回滚规则)、isolation(隔离级别)和propagation(传播机制)。通过用户注册案例演示了REQUIRED和REQUIRES_NEW两种传播机制的区别:REQUIRED会使所有操作共用同一事务,任一

2025-12-25 21:35:22 1127

原创 七大排序算法-Java代码实现

本文介绍了7种经典排序算法的实现原理和Java代码示例,包括插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序及其非递归版本、归并排序及其非递归版本。每种算法都通过代码展示了具体实现过程,并附有基本原理说明。从时间复杂度来看,快速排序、归并排序和堆排序等高效算法平均复杂度为O(nlogn),而冒泡排序、选择排序等简单算法为O(n²)。稳定性方面,插入排序、冒泡排序和归并排序是稳定的,而快速排序、堆排序等不稳定。文章为理解不同排序算法的特点和适用场景提供了实用参考。

2025-12-09 18:16:42 718 2

原创 网络编程套接字

本文介绍了网络编程的基础知识和实现方法。首先阐述了网络编程的必要性,即通过网络传输获取丰富的网络资源。然后详细讲解了网络编程的基本概念,包括发送端/接收端、请求/响应、客户端/服务端等核心要素。重点介绍了两种主要的Socket套接字编程:UDP数据报套接字(无连接、不可靠传输)和TCP流套接字(有连接、可靠传输),并提供了Java实现代码示例。文章还讨论了服务器引入多线程和线程池的必要性,以及长短连接的区别与适用场景。通过具体代码展示了如何实现简单的Echo服务器、英译汉词典服务器等网络应用。

2025-12-05 21:58:58 990

原创 数据结构-模拟实现顺序表和链表

本文介绍了Java中顺序表(ArrayList)和链表(LinkedList)的实现与应用。首先展示了基于ArrayList实现的洗牌和发牌操作,包括创建牌组、洗牌算法及发牌过程。其次详细讲解了数组模拟ArrayList的实现,包含扩容、插入、删除等核心操作。然后阐述了链表结构的特点,分别模拟实现了单向链表和双向链表,实现了头插尾插、按位置/值删除等功能。最后对比了ArrayList和LinkedList在存储结构、访问效率、插入性能等方面的差异:ArrayList物理连续存储,支持O(1)随机访问但插入效

2025-12-03 15:50:52 411

原创 数据结构-包装类和泛型

摘要: Java包装类为基本类型提供对象支持,实现自动装箱拆箱(如Integer缓存-128~127)。泛型通过类型参数实现代码复用,编译时进行类型擦除替换为Object或指定类型。泛型类可定义上界约束类型范围(如<E extends Number>),方法也可泛型化。通配符?解决泛型灵活性需求,?extends设置上界(只读),?super设置下界(可写入)。类型擦除会生成桥接方法保持多态性。泛型推导可省略类型实参,但基本类型必须使用包装类。

2025-12-01 21:12:08 1267 3

原创 MySQL三大范式和E-R图

数据库范式是关系型数据库设计的重要规范,包括1NF至5NF六个级别。1NF要求列具有原子性,2NF消除部分函数依赖,3NF消除传递依赖。高范式可减少冗余但可能增加I/O负担,实践中通常满足3NF即可。E-R图通过实体、属性和关系描述数据模型,关系类型包括一对一、一对多和多对多。多对多关系需通过中间表实现。示例展示了用户账户、学生班级及课程成绩等关系的表设计方法,包括主键设置和外键关联。合理的范式应用能有效解决数据冗余、更新异常等问题。

2025-11-30 17:57:53 996 2

原创 MySQL-数据库备份和恢复介绍(不看后悔版)

本文详细介绍了MySQL日志系统与备份策略。主要内容包括:1. MySQL日志类型(二进制日志、重做日志等)及其作用;2. 二进制日志的配置、格式、刷盘策略和常用操作;3. 数据库备份分类(逻辑/物理、冷/热/温、全量/增量/差异备份)及特点;4. 备份策略设计示例,如电商网站采用"全量+增量"备份方案。文章还提供了日志解析、数据恢复等实用操作指南,强调备份对数据安全的重要性,并给出备份实施注意事项。适合数据库管理员和开发者参考学习。

2025-11-29 22:09:58 938 4

原创 MySQL-调优详解(不看后悔一辈子版)

MySQL索引优化与查询性能提升 本文系统介绍了MySQL索引优化与查询性能提升的关键技术。主要内容包括: 索引优化:详细分析了B+树索引结构、索引覆盖与回表查询机制,通过执行计划解析type和Extra列的性能指标,指导索引创建策略。 查询优化:深入探讨了WHERE子句优化、范围查询优化、索引合并算法(交叉/联合/排序联合)等高级技术,以及外连接、IS NULL、ORDER BY、GROUP BY等特定场景的优化方法。 索引失效场景:总结了复合索引最左原则、OR条件、LIKE模糊查询等常见索引失效情况。

2025-11-21 21:53:21 1011 5

原创 MySQL-触发器

触发器是与数据库表关联的特殊对象,在执行INSERT、UPDATE或DELETE操作时自动触发预设SQL语句。MySQL支持三种行级触发器(不支持语句级),可通过OLD和NEW访问修改前后的数据。文章详细介绍了创建(BEFORE/AFTER)、查看和删除触发器的语法,并以学生表为例,演示了如何通过三种触发器记录变更日志到student_log表,包括新增、修改和删除操作的完整实现过程及测试方法,展示了触发器在数据审计中的实际应用。

2025-11-17 16:41:58 653

原创 MySQL存储过程

本文详细介绍了MySQL存储过程及相关编程技术。主要内容包括:1)存储过程的定义、特点、优缺点及基本语法;2)系统变量、用户变量和局部变量的使用方法;3)SQL编程中的条件判断、参数传递、循环结构等控制语句;4)游标的使用及条件处理程序;5)存储函数的定义和使用。文章通过大量实例演示了各类技术的具体应用,如成绩等级判定、数据累加计算、数据迁移等,并强调了变量作用域、错误处理等注意事项。这些技术能有效封装业务逻辑,提高数据库操作效率和安全性。

2025-11-16 21:31:03 1041 2

原创 数据库-索引

本文系统介绍了MySQL索引的核心知识:1. 索引本质是加速查询的数据结构,类似书籍目录 2. 重点分析了B+树作为索引结构的优势:支持范围查询、稳定时间复杂度、高效磁盘IO 3. 详细解析InnoDB的数据页结构(16KB页大小、页目录二分查找机制)及其与B+树的关联 4. 分类说明主键索引、唯一索引、组合索引等不同类型 5. 提供索引创建、查看、删除的完整SQL操作指南 6. 强调索引使用注意事项:合理选择索引列、平衡查询性能与维护成本。通过三层B+树可支撑千万级数据高效查询的实例,展示了索引对数据库性

2025-10-20 21:01:27 1166 2

原创 数据库-联表查询

本文介绍了MySQL联合查询的多种方法及其应用场景。主要内容包括:1)联合查询的基本概念及计算过程(笛卡尔积);2)内连接、外连接(左/右连接)和自连接的使用方法;3)子查询(单行、多行、多列)的实现方式;4)合并查询(UNION/UNION ALL)的应用;5)插入查询结果和创建新表的操作。通过学生成绩管理系统案例,详细演示了各类查询的实际应用,包括表连接条件设置、结果过滤、分组统计等核心操作技巧。文章特别强调了联合查询的性能考虑,并提供了完整的SQL示例代码。

2025-10-17 11:44:22 730 1

原创 数据结构-Map和Set

本文系统介绍了搜索树和哈希表两类重要的数据结构。在搜索树部分,详细讲解了二叉搜索树的概念、基本操作(查找、插入、删除)及其实现,分析了其性能特点,并介绍了Java中的TreeMap和TreeSet实现。哈希表部分阐述了哈希函数的设计原则、冲突处理方法(开放地址法和链地址法),重点讲解了哈希桶的实现原理,分析了时间复杂度,最后说明了Java中HashMap和HashSet的实现方式。全文通过理论讲解结合代码示例,系统性地介绍了这两种高效查找数据结构的原理和应用。

2025-10-13 22:02:09 610 4

原创 数据结构-优先级队列

本文介绍了优先级队列的概念、实现及其应用。优先级队列是一种支持按优先级处理元素的数据结构,常用于需要优先处理高优先级任务的场景。其底层通常通过堆(大根堆或小根堆)实现,核心操作包括插入元素(向上调整)和删除堆顶元素(向下调整)。文章详细讲解了堆的存储方式、创建过程(时间复杂度O(n))以及插入删除操作(O(logn)),并给出了Java中PriorityQueue的模拟实现代码。最后介绍了JDK中PriorityQueue的特性、常用接口及扩容机制,并指出堆排序和优先级队列的实际应用。

2025-10-12 15:16:05 789 2

原创 数据结构-二叉树

本文介绍了树型结构和二叉树的基本概念。树是一种非线性数据结构,具有根节点、子树等特性,包含度、叶子节点、深度等重要概念。重点讲解了二叉树的定义、性质(如满二叉树、完全二叉树)以及存储结构(顺序存储和链式存储)。详细阐述了二叉树的三种遍历方式:先序(根-左-右)、中序(左-根-右)、后序(左-右-根)遍历,并提供了Java代码实现示例。此外还介绍了层序遍历方法,即按层次自上而下、自左至右访问节点。这些基础知识是理解和运用树形结构的重要前提。

2025-10-11 22:11:06 948 1

原创 数据结构-ArrayList与顺序表

本文介绍了线性表及其实现方式,重点讲解了顺序表和ArrayList的相关知识。主要内容包括:1.线性表的基本概念和存储结构;2.顺序表的实现原理及基本操作接口;3.ArrayList的特点、构造方法和常见操作;4.ArrayList的三种遍历方式和扩容机制;5.通过洗牌算法案例展示ArrayList的具体应用;6.分析ArrayList存在的问题,如插入删除效率低、扩容消耗大、空间浪费等。文章系统性地介绍了ArrayList这一常用数据结构,对其实现原理和使用方法进行了详细说明,并指出了其优缺点。

2025-10-09 22:17:02 969 3

原创 Spring AI-流式编程

SSE(Server-Sent Events)是一种基于HTTP的轻量级实时通信协议,支持服务器向客户端单向推送数据流。其特点包括:基于HTTP协议、自动重连机制、自定义消息类型。Spring从4.2开始支持SSE,5.0后可通过WebFlux的Flux实现更优雅的流式响应,提供map、filter等操作符处理数据流。示例展示了如何创建SSE服务端接口和客户端实现,以及Spring中流式响应的应用场景。

2025-10-08 16:25:53 1546 6

原创 Spring AI快速入门以及项目的创建

SpringAI是Spring官方推出的首个稳定版AI集成框架,帮助Java开发者便捷集成AI能力(如大语言模型、机器学习等)。文章介绍了SpringAI的核心概念,包括模型、LLM(大语言模型)、提示词和词元,并详细讲解了如何快速入门,包括环境要求、DeepSeek API申请、项目初始化和接入流程。此外,还介绍了SpringAI的聊天模型功能,包括ChatClient和ChatModel的使用,以及如何实现简单对话、结构化输出和流式输出。

2025-10-07 22:10:12 1568 4

原创 七大排序算法的基本原理

七大排序算法的基本原理

2025-10-03 20:18:13 1697 2

原创 Linux基本使用(Ubuntu)

终端软件是一类工具软件,可以和远程的主机简历网络连接,从而对主机进行一些操作。我们使用的是XShell。

2025-10-02 17:44:49 1274 4

原创 文件操作和IO

文件IO的详细解释

2025-09-28 22:35:58 696 1

原创 多线程-进阶

多线程-进阶详解

2025-09-23 22:01:15 675

原创 多线程-初阶

多线程知识的详解

2025-09-21 22:05:43 926

原创 Lambda表达式

Lambda表达式的详细解释

2025-09-20 20:52:40 931

原创 反射机制的了解

反射机制的了解

2025-09-20 12:01:35 626

原创 Spring AOP

Aspect Oriented Programming(面向切面编程)登录拦截器,就是对“登录校验”这类问题的统一处理。所以,拦截器也是AOP的一种应用。AOP是一种思想,拦截器就是AOP思想的一种实现,Spring框架实现了这种思想,提供了了拦截器技术的相关接口。同样的,统一数据返回格式和统一异常处理,也是AOP思想的一种实现。AOP是一种思想,是对某一类事情的集中处理。什么是Spring AOP?AOP是⼀种思想,它的实现方法有很多,有SpringAOP,也有Aspect、CGLIB等。

2025-09-19 22:34:16 1071

原创 Spring IoC & DI

IoC和DI的详细解释

2025-07-15 14:33:30 916 3

原创 掌握JVM

JVM的类加载机制、垃圾回收机制以及内存模型

2025-06-16 18:09:40 962 4

原创 7.网络原理-初识

网络原理---初始

2025-06-16 15:07:25 695

原创 6.多线程

线程的相关内容

2025-04-20 18:47:28 1013

原创 5.认识异常

Java 中虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我 们实际情况的异常结构。例如, 我们实现一个用户登陆功能。此时我们在处理用户名密码错误的时候可能就需要抛出两种异常。我们可以基于已有的异常类进行扩展(继承), 创建 和我们业务相关的异常类。具体方式:1. 自定义异常类,然后继承自Exception 或者 RunTimeException。2. 实现一个带有String类型参数的构造方法,参数含义:出现异常的原因。

2025-02-09 18:15:29 1597

原创 认识String类

使用常量字符串构造直接使用newString对象使用字符数组进行构造2.在Java中用""引起来的也是String类型对象。

2025-02-04 23:12:25 710

原创 Java实现图书管理系统

通过IOperation将用户与书关联起来,接口中定义了work方法,里面所有的类都要实现IOperation接口里面的work方法(加上接口可以保证所有类提供的都是work方法加上接口,强制统一,也可以定义成抽象类,但是IOperation里面没有属性需要继承,优先考虑继承)。在User类中定义operations数组,构造work方法来判断进入功能界面后输入的选项是否正确,若不正确,则输出(输入有误),若正确,则调用operations数组里面输入的choice对应对象的work方法。

2025-01-27 00:45:29 570

原创 继承和多态

Java中使用类对现实世界中实体来进行描述,类经过实例化之后的产物对象,则可以用来表示现实中的实体,但是 现实世界错综复杂,事物之间可能会存在一些关联,那在设计程序是就需要考虑。

2025-01-21 00:06:17 1869

原创 介绍类和对象

class为定义类的关键字,ClassName为类的名字,{}为类的主题。类中包含的内容称为类的成员。属性主要是用来描述类的,称为类的成员属性或者成员变量。方法主要说明类具有哪些功能,称之为类的成员方法。采用Java语言将洗衣机类在计算机中定义完成,经过javac编译之后形成.class文件,在JVM的基础上计算机就可以识别了。注意事项成员前写法统一为public,此处写方法不带static关键字,后面会解释。注意事项1.main方法所在的类一般要用public修饰。

2025-01-13 21:22:58 1489

空空如也

空空如也

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

TA关注的人

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