自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 平衡二叉树:让搜索效率飞升的树形艺术

在计算机科学中,树形结构是解决高效检索问题的经典方案。当普通二叉树因数据倾斜退化成链表时,平衡二叉树(Balanced Binary Tree)如同数据结构世界的"矫正器",通过精妙的旋转机制维持树的平衡,将搜索、插入、删除操作的时间复杂度稳定在O(log n)级别。本文将带您深入探索这个优雅的数据结构,揭开其背后的数学之美与工程智慧。

2025-06-08 19:34:31 433

原创 深入理解会话管理:Cookie、Session与JWT的对比与应用

在Web开发中,会话管理是解决HTTP协议无状态性的关键。本文探讨了三种主流技术:Cookie、Session和JWT。Cookie是存储在客户端的小段文本,简单易用但安全性较低,适合存储非敏感信息如用户偏好。Session是服务器端创建的会话标识,安全性高但增加服务器负载,适合用户登录状态管理。JWT是无状态的加密令牌,适合分布式系统,但需注意Token大小和安全性。技术选型应根据场景需求,结合安全性、性能和兼容性进行权衡。未来,JWT在微服务架构中应用广泛,而Session与Cookie在传统Web应用

2025-05-23 14:49:12 827

原创 归并排序:分治思想的优雅实现

归并排序是一种基于分治策略的高效排序算法,通过将数组不断二分直至单个元素,再逐步合并有序子数组,最终实现整体排序。其时间复杂度为O(n log n),空间复杂度为O(n),且具有稳定性。归并排序适用于大规模数据处理、数据库排序及并行计算等场景。尽管需要额外空间存储临时数组,但其高效性和稳定性使其成为排序算法中的重要选择。通过理解归并排序的原理与实现,可以更好地掌握分治思想及其应用。

2025-05-16 19:35:46 682

原创 交换排序:从冒泡到快速排序的深度解析

交换排序是一类通过比较和交换元素位置来实现数据有序化的算法,主要包括冒泡排序和快速排序。冒泡排序通过多次遍历数组,每次将最大值“冒泡”到末尾,时间复杂度为O(n^2),适合小规模数据或教学演示。快速排序采用分治策略,通过选择基准和分区操作递归排序,平均时间复杂度为O(n log n),适合大规模数据和高性能需求。尽管冒泡排序效率低,但逻辑简单;快速排序虽高效,但需优化基准选择以避免最坏情况。实际应用中,选择排序算法需综合考虑数据规模、稳定性需求和内存限制。

2025-05-09 11:43:56 881

原创 插入排序(直接插入排序、折半插入排序和希尔排序)

介绍了三种插入排序的思想及特点,并用c语言实现了直接插入排序和折半插入排序

2025-04-27 11:04:57 677

原创 选择排序(简单选择排序、堆排序)

文章主要介绍简单选择排序和堆排序算法的时间复杂度、空间复杂度以及它们的代码实现和特点等

2025-04-16 16:45:13 477

原创 Java中的动态代理(JDK动态代理)

Java动态代理(Dynamic Proxy)是Java提供的一种代理机制,用于在运行时动态生成代理类并为接口创建代理对象。代理类能够拦截接口方法的调用,并添加自定义逻辑。原理:动态代理利用Java反射机制在运行时创建代理类。当调用代理对象的方法时,该方法调用会被传递到InvocationHandler的invoke()方法中,在invoke()方法中可以通过反射调用实际的目标对象方法,并在调用前后添加自定义逻辑。为什么需要代理?代理可以无侵入式的给对象增强其他的功能。代理长什么样。

2025-01-19 09:30:00 685

原创 Java中的反射

反射(Reflection)是Java中一个强大的特性,它允许程序在运行时检查、修改以及调用自身的行为和结构。通过反射,你可以在运行时获取类的属性、方法、构造函数等信息,并且还能动态地创建对象、调用方法以及访问字段。

2025-01-17 16:16:14 254

原创 SpringBoot中的@Configuration注解

在Spring Boot中,`@Configuration`注解扮演着非常重要的角色,它是Spring框架中用于定义配置类的一个核心注解

2024-12-10 19:26:21 361

原创 Java中的泛型方法和泛型类

在Java编程语言中,泛型(Generics)是一个强大的特性,它使得类、接口和方法能够灵活地操作各种数据类型,同时保持类型安全。泛型主要通过类型参数(Type Parameters)来实现,这些类型参数在类、接口或方法被声明时指定,并在它们被实例化或调用时由具体的类型所替代。

2024-11-30 12:32:28 423

原创 Java中的匿名内部类

匿名内部类在Java中非常有用,尤其是在你需要快速实现一个接口或扩展一个类而不需要显式命名时。然而,随着Java 8引入了Lambda表达式,许多原本使用匿名内部类的场景都可以被更简洁的Lambda表达式所替代。

2024-10-04 16:34:11 397

原创 完全背包问题

完全背包与01背包问题的区别就在于,01背包中的每种物品只有一个,要么取要么不取,但完全背包中每种物品有无限个,可以取多次。注:文章内容是我二刷代码随想录之后的总结,侧重点是不同类型题的代码该如何书写,还有一维dp数组和二维dp数组如何使用以及一些学习中遇到的细节问题。不了解01背包的读者也可以看我写的。

2024-10-02 17:27:09 985

原创 01背包问题

这种题型往往是给我们一个背包容量,问我们背包所能装下的物品的最大价值。例题卡码网46. 携带研究材料dp[i][j],选用第0-i个中的物品,装入容量为j的背包,可以装入的最大价值当背包容量大于weight[i]时,我们可以选择装入第i个物品或不装入,又因为我们要求价值最大,所以此时dp[i][j] = max(dp[i-1][j], dp[i - 1][j - weight[i]+value[i]);如果背包容量小于第i个物品的重量,我们就不能装入第i个物品,所以dp[i][j] = dp[i-1[j]

2024-10-02 17:23:10 1137

原创 SpringBoot Web请求、响应

请求方面主要讲,会讲解当前端向后端发出请求时,对于不同类型的参数后端都如何接收;对于响应,文章会讲解后端如何向前端响应数据以及如何使返回的数据具有统一的格式。

2024-08-18 11:07:46 1785 3

原创 Mybatis--动态SQL

if标签,用来决定是否拼接其所包裹的sql,其中test属性即为条件,条件成立则拼接;where标签,放置有多余的and或or出现;set标签,用与update语句中,放置有多余的逗号出现;foreach标签,当所传的参数为集合时,用来遍历集合,其中属性collection用来说明集合的名称,item用来说明集合遍历出来的元素/项,seperator说明每一次遍历使用的分隔符,open指遍历开始前输出的内容,close指遍历结束后输出的内容;

2024-08-08 20:59:00 812

原创 JavaWeb学习 MySql 02 事务、索引

索引(index):是帮助数据库高效获取数据的数据结构。其实就是为了提高我们的查询效率。现在我们存储的只有几十条记录,当存储几百万条记录时不使用索引的话会耗费大量的查询时间。创建索引:create index 索引名 on 表名(要建立索引的字段名);

2024-08-05 08:36:01 691

原创 JavaWeb学习--MySql 01 DDL、DML、DQL

sql是结构化查询语言。一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准。

2024-08-05 08:35:26 988

原创 JavaWeb学习Day03 Ajax、Vue-cli和Element组件库

Ajax(Asynchronous JavaScript And XML),异步的JavaScript和XML。可以通过异步交互的方式从后端获取数据。同步交互与异步交互:同步交互:浏览器页面在发送请求给服务器,在服务器处理请求的过程中,浏览器页面不能做其他的操作。只能等到服务器响应结束后才能,浏览器页面才能继续做其他的操作。比如,我们在打开一个网页时,只有等到页面加载完成我们才能进行后续操作,这种方式就为同步交互。

2024-07-17 09:51:43 1127

原创 JavaWeb学习Day02 JavaScript、vue

<title>变量</title>

2024-07-14 20:59:32 1161

原创 JavaWeb学习Day01 HTML、CSS

现在,我正在学习,这篇文章是我的学习总结,文章中的部分图片来自黑马程序员,学习资源可以从黑马程序员获取,另外由于自己学识浅薄,文章中可能出现不足或错误之处,恳请读者批评指正。

2024-07-11 11:53:28 740

原创 C++实现进程调度算法(FCFS&RR&优先级调度&SJF)

文章根据已给条件(实验课老师给的)对进程调度算法进行分析,应用范围有限,但可以初步了解进程调度算法,由于本人学识浅薄,文章中难免有不足和错误之处,恳请读者批评指正。

2024-05-12 22:49:01 1376 1

原创 Java中的正则表达式

本篇文章将讲述Java正则表达式中的一些知识,正则表达式的用处主要有两个,第一是用来判断字符串,第二是用来爬取文本中的内容,由于本人学识浅薄,文中可能会出现错误或不足之处,恳请读者批评指正。符号解释.可以匹配出\n之外的任意一个字符\d可以用来匹配0-9的数字字符\s用来匹配空白字符(空格符、制表符、换行符等)\S\S等价于[^\s]\w可以匹配数字、字母、下划线,即[0-9a-zA-Z _ ]\W等价于[^\w]

2024-04-16 23:49:42 753 3

原创 高手也会手滑~~ LeetCode:707.设计链表(Java)

题中已给出的代码:你可能已经可以在算法的题海中嘎嘎乱杀,但身为高手的你,可能被这个基础题给阻碍住。平时在LeetCode刷题的过程中,链表结构都是题中给我们设计好的,我们直接拿来用就行,所以导致我们做起这道设计链表的简单题,有点不顺畅。

2024-02-20 10:57:30 316 2

原创 彻底搞懂二分查找区间

是不是一直烦恼于二分查找区间是小于,还是小于等于,这次帮你彻底搞懂~~

2024-02-12 18:24:34 750 1

原创 单、双向链表(c++)插入和删除的秘密

本人在学习线性表时,发现单链表与双向链表的插入、删除操作的算法实现有较大差别,并且自己用的课本并未详细给出双向链表的插入和删除的算法实现,于是自己就动手实现了这两个操作,下面我将分享自己在学习中总结的单链表与双链表插入删除算法的区别,并给出算法实现。但由于本人学识浅陋、见闻不广,文中难免会出现错误或不足之处,恳请读者批评指正。

2024-02-03 10:37:20 1768 1

原创 图书馆管理系统

图书馆是一个提供书籍、资料等学习资源的场所,对于学生、教师等用户来说具有重要意义。本系统的目标是为图书馆提供一套高效、便捷的信息管理系统,提供图书管理功能、读者管理功能、借阅统计功能、管理员服务质量评定等功能。

2024-01-15 11:32:48 1991 1

原创 JAVA中的时间相关类

Java中的时间相关类,根据出现的时间先后可以分为两大类:1.1JDK7前的时间相关类有Date、SimpleDateFormat、Calendar,其中Date类基本上已被Calendar取代,SimpleDateFirmat类用于日期的格式化和解析。1.2JDK8的时间相关类该部分的类又可以分为四部分,有与Date相似的类、日期格式化类、日历类和用于计算时间间隔的工具类。

2023-09-29 08:33:55 75 1

空空如也

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

TA关注的人

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