自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TypeScript 基本使用指南【前端 26】

TypeScript 是 JavaScript 的一个超集,它添加了类型系统和一些其他特性,使得开发大型应用时更加高效和可靠。TypeScript 代码最终会被编译成普通的 JavaScript 代码,这意味着你可以在任何支持 JavaScript 的环境中运行 TypeScript 代码。TypeScript 通过添加类型系统和编译时检查,极大地提高了 JavaScript 开发的效率和可靠性。通过本文,你应该已经了解了 TypeScript 的基本安装、类型系统、接口、类以及编译过程。

2024-09-29 22:12:37 689

原创 Java中的哈希函数

在某些情况下,你可能需要根据特定需求实现自定义的哈希函数。虽然这通常不推荐用于加密或安全相关的应用(因为自定义哈希函数很难保证安全性和效率),但在某些特定算法或数据结构中,自定义哈希函数可能是必要的。

2024-09-28 21:15:36 767

原创 双指针算法【算法 18】

双指针算法以其高效性和简洁性,在处理数组和字符串问题时展现出强大的能力。通过灵活应用双指针技术,我们可以解决许多看似复杂的问题。上述示例只是双指针算法应用的冰山一角,实际上,双指针算法的应用远不止于此,包括但不限于数组去重、寻找数组中的最大/最小子数组和、字符串匹配等。希望本文能够激发你对双指针算法的兴趣,并在未来的算法学习中加以应用。

2024-09-27 23:42:40 597

原创 Java线程池:高效并发编程的利器

Java线程池是并发编程中不可或缺的工具,它通过复用线程、管理线程生命周期等方式,提高了程序的执行效率和稳定性。掌握线程池的使用,对于开发高性能、高并发的Java应用至关重要。希望本文能帮助你更好地理解Java线程池,并在实际开发中灵活运用。

2024-09-26 23:35:18 814

原创 【前端 25】

Ant Design 支持通过修改 Less 变量来自定义主题。你可以在项目的根目录下创建一个antd.less// 修改主题色然后,在入口文件中引入这个antd.less文件代替。Ant Design 是一个功能丰富、设计精良的 React 组件库,适用于开发企业级后台应用。通过本教程,你应该已经学会了如何安装、引入 Ant Design,并使用其基本组件来构建 React 应用。

2024-09-25 23:37:04 903

原创 MyBatis—Plus 快速上手【后端 22】

MyBatis-Plus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。它内置了强大的CRUD操作,以及条件构造器(Wrapper),使得开发者能够以更少的代码完成数据库操作。MyBatis-Plus通过提供强大的CRUD操作、条件构造器等功能,极大地简化了MyBatis的开发过程。通过上述步骤,你可以快速地将MyBatis-Plus集成到你的Spring Boot项目中,并开始享受它带来的便利。

2024-09-24 23:30:17 1609

原创 双向链表:实现、操作与分析【算法 17】

首先,我们需要定义双向链表的节点。每个节点包含三个部分:存储的数据、指向下一个节点的指针(或引用)以及指向前一个节点的指针(或引用)。

2024-09-22 22:24:26 601

原创 静态链表:实现、操作与性能优势【算法 16】

然而,在算法竞赛或需要高效内存管理的环境中,传统的动态链表可能会因为内存分配和释放的开销而影响性能。由于数组在物理上是连续的,因此我们需要一个特殊的标记来表示链表的结束,通常可以使用一个特定的索引值(如-1或数组长度)来表示空指针。在静态链表中添加节点时,首先需要从空闲链表中获取一个空闲节点,然后设置其数据和下一个节点的索引。静态链表的实现相对简单,且由于所有节点都在同一个连续的内存块中,调试时也更容易跟踪和定位问题。静态链表的节点在物理上是连续的,这有利于CPU缓存的利用,提高了数据访问的效率。

2024-09-21 23:11:20 472

原创 动态SQL中的foreach标签【后端 21】

在Java开发中,特别是在使用MyBatis进行数据库操作时,动态SQL是一项非常强大的功能。MyBatis的``标签就是动态SQL中最为常用的一个,主要用于处理包含IN子句的查询或者批量插入等操作。本文将详细介绍``标签的用法及其在MyBatis中的应用。## 什么是``标签?``标签是MyBatis动态SQL的一个核心组件,它允许我们在执行SQL语句时动态地构建一个IN子句的列表或者执行批量插入等操作时构建一系列的VALUE

2024-09-20 19:09:05 1304

原创 探索RESTful风格的网络请求:构建高效、可维护的API接口【后端 20】

REST(Representational State Transfer)是一种网络架构风格,而不是一个协议或标准。它强调客户端和服务器之间资源的无状态通信,通过HTTP协议定义的几个基本操作(如GET、POST、PUT、DELETE等)来对资源进行操作。RESTful风格的核心在于资源的表述、资源的操作以及对这些操作的约束。RESTful风格的网络请求以其简洁、高效和易于扩展的特性,在Web服务和API接口设计中占据了重要地位。

2024-09-19 23:04:53 1230

原创 MyBatis动态SQL中的`if`标签使用【后端 19】

MyBatis 的动态 SQL 特性,特别是if标签,极大地提高了 SQL 语句的灵活性和可维护性。通过合理使用if标签,可以根据不同的条件动态构建 SQL 语句,从而满足复杂的业务需求。希望本文对你有所帮助,如果你有任何问题或建议,请随时留言交流。

2024-09-18 21:56:20 1215

原创 MyBatis XML映射文件编写【后端 18】

MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs (Plain Old Java Objects, 普通的 Java 对象)映射成数据库中的记录。在 MyBatis 中,XML 映射文件是非常关键的部分,它定义了如何将 Java 对象映射到 SQL 语句以及如何将 SQL 查询结果映射回 Java 对象。对于复杂的查询,你可能需要将结果映射到多个 Java 对象或者映射到 Java 对象的集合中。来获取自动生成的主键。元素来支持复杂的映射。

2024-09-17 21:15:35 1323

原创 MyBatis 增删改查【后端 17】

以上示例展示了如何使用 MyBatis 框架结合 MySQL 数据库进行基本的增删改查操作。通过定义 Mapper 接口和 XML 映射文件,MyBatis 使得数据库操作变得简洁而高效。在实际项目中,可以根据需要扩展 Mapper 接口和 XML 文件,实现更复杂的业务逻辑。

2024-09-16 21:50:22 1994

原创 Lombok:Java开发者的代码简化神器【后端 17】

Lombok是一个Java库,它通过注解在编译时期自动生成模板方法、构造函数、getter/setter等,从而减少冗余的代码,让开发者能够专注于业务逻辑的实现。Lombok的核心理念是“通过简单的注解,让代码更加简洁易懂”。由于Lombok生成的代码是在编译时插入的,IDE在编写代码时可能无法识别这些方法,导致IDE报错或提示方法未定义。安装Lombok插件后,IDE将能够识别这些由Lombok注解生成的代码,从而避免此类问题。

2024-09-15 19:04:15 1039

原创 数据库连接池与Druid【后端 16】

数据库连接池是一种用于管理数据库连接的技术,它通过预先创建和管理一组数据库连接,使得应用程序能够快速复用这些连接,而非每次需要时都创建新连接。这种方式显著减少了数据库连接的创建和销毁开销,提高了应用程序的性能和资源利用率。

2024-09-14 23:26:11 1639 1

原创 JDBC与MyBatis:数据库访问技术的变迁【后端 15】

Java Database Connectivity (JDBC) 是Java提供的一种标准API,用于与数据库进行交互。它提供了一系列的接口和类,使得开发人员能够直接使用Java代码来编写SQL语句并执行数据库操作。

2024-09-13 19:18:31 1554

原创 Hotohiko Sakamoto算法,以及用其计算星期几【算法 15】

初始化:使用欧拉筛法找出小于或等于2n的所有素数。构建排列:从后往前遍历序列,对于每个位置i,找到大于i的最小素数minp,使得minp - i仍然位于1到n的范围内。填充数组:将minp - i填入数组的第i个位置,并继续向前处理剩余位置,直到数组完全填充。Tomohiko Sakamoto算法的核心在于通过一个精心设计的公式来计算出给定日期(年、月、日)对应的星期数。该算法避免了复杂的历法计算,仅通过简单的算术运算即可得出结果。

2024-09-12 20:42:03 1239

原创 MySQL索引优化与B+树【后端 14】

在MySQL数据库中,索引是优化查询性能的关键技术之一。B+树作为一种广泛使用的索引结构,在MySQL的InnoDB存储引擎中扮演着核心角色。本文将详细介绍B+树的结构特点及其在MySQL索引优化中的应用。

2024-09-11 19:30:27 1462

原创 MySQL事务【后端 13】

事务是一组逻辑上不可分割的数据库操作序列,它们要么全部执行成功,要么全部不执行,以保持数据库的一致性。事务处理是数据库管理系统执行过程中的一个逻辑单元,它对数据库做修改的部分在所有操作完成之前,对外是不可见的。MySQL事务是数据库管理中不可或缺的一部分,它通过ACID特性保证了数据操作的完整性和一致性。在开发过程中,合理应用事务可以大大提高数据处理的准确性和可靠性。同时,了解并合理设置事务的隔离级别,也是解决并发事务冲突、优化数据库性能的重要手段。

2024-09-10 23:04:37 1194

原创 Java反射

Java反射机制是在运行时检查或修改类的行为的一种能力。这种机制主要通过包中的类和接口实现。通过反射,我们可以动态地创建类的实例、调用方法、访问字段等,而不需要在编写代码时明确知道这些类的具体信息。

2024-09-09 22:56:25 744 1

原创 Swiper轮播图框架【前端 24】

Swiper(通常指的是Swiper Slider或Swiper.js,但请注意,市面上更常见的是Swiper的变体,如Swiper或SwiperJS,这里我们统一以Swiper代称)是一个强大的滑动组件库,支持PC和移动端,广泛应用于网站、移动应用以及网页广告等场景。它基于原生JavaScript编写,轻量级且兼容性好,能够轻松实现触摸滑动、循环播放、分页指示器、懒加载等功能。Swiper作为一款功能强大、易于上手的轮播图框架,凭借其出色的性能和丰富的配置选项,赢得了广大前端开发者的青睐。

2024-09-08 21:48:36 1477

原创 Java Stream API

Java Stream API 是一组用于处理集合(Collection)中数据的工具类,它提供了一种高效且易于使用的方式来对集合(List、Set)或数组等数据源进行复杂的查询、过滤和映射操作。与传统的迭代器(Iterator)不同,Stream API 通过函数式编程模式(如 Lambda 表达式)使得数据处理操作能够以声明式的方式编写,提高了代码的可读性和可维护性。Java Stream API 的引入不仅提高了 Java 开发者处理集合数据的效率,还促进了函数式编程在 Java 社区中的普及。

2024-09-07 21:14:43 766

原创 探索8421码、余三码、Gray码和余三循环码的编码技术

8421码、余三码、Gray码和余三循环码各自有着不同的特点和应用场景。8421码适用于日常的十进制表示,余三码在减少电路复杂性上有一定优势,Gray码能够有效减少状态转换中的误差,而余三循环码则在循环移位应用中表现突出。选择合适的编码方案可以极大地提升系统的稳定性和性能。

2024-09-06 21:50:11 1645

原创 使用C语言实现字符推箱子游戏

首先我们定义地图的大小以及初始化地图。我们使用一个二维数组来存储地图信息。75"#######","# #","# $.@ #","# * #","#######"// 玩家初始位置通过这篇教程,你已经学会了如何使用C语言实现一个简单的字符版推箱子游戏。当然,这只是一个基本的版本,你可以进一步优化,比如增加关卡设计、保存游戏进度、记录移动步数等。祝你在推箱子的世界中玩得愉快!

2024-09-05 21:19:58 888

原创 用C语言生成字符贪吃蛇游戏

2020int x;int y;} Point;// 存储蛇的每一个节Point food;int score;通过本文的介绍,你已经学会了如何使用C语言来实现一个简单的字符贪吃蛇游戏。虽然这个游戏非常简单,但它涉及到了基本的游戏循环、输入处理、碰撞检测等核心游戏编程概念。如果你有兴趣,可以继续扩展这个游戏,比如增加难度设置、优化蛇的移动逻辑、或者增加更多的游戏元素。

2024-09-04 21:55:20 1093

原创 猴子排序:一种理论上的排序算法

猴子排序的基本思想异常简单:通过不断随机地重新排列数组元素,直到数组意外地被排序成正确的顺序为止。这个算法的名称来源于“无限猴子定理”,该定理指出,如果让一只猴子在键盘上随机敲击足够长的时间,它几乎必然能够打出任何给定的文本,包括莎士比亚的全套作品。同样地,理论上通过足够多次的随机排序,任何数组终将达到有序状态。猴子排序以其独特的名字和极低的效率,成为了算法世界中的一个有趣话题。通过了解猴子排序的原理和特性,我们可以更好地理解排序算法的本质和多样性。

2024-09-03 22:18:40 989

原创 顺序结构存储的线性表操作【作业代码 1】

顺序结构存储的线性表是一种使用连续内存空间来存储元素的数据结构。在这种结构中,元素之间的相对位置通过物理存储位置直接反映出来,即元素在内存中的地址是连续的。下面,我们将基于您提供的代码片段,详细讨论顺序结构线性表的基本操作,包括初始化、查找、插入、删除以及区间删除。

2024-09-02 22:28:24 614

原创 字符集介绍

字符集和字符编码是计算机处理文本数据的基础。在现代应用中,Unicode 和 UTF-8 已经成为最广泛使用的标准。理解字符集的工作原理,合理选择编码方式,不仅能避免乱码,还能提升系统的兼容性和性能。

2024-09-01 20:23:40 1253

原创 桶排序【算法 14】

桶排序是一种适用于特定数据分布的高效排序算法,特别适合均匀分布的数据集合。在大多数情况下,它可以达到线性时间复杂度,因此在处理某些数值排序问题时非常实用。然而,桶排序对输入数据的分布有较高要求,因此在使用时需考虑数据特性。

2024-08-31 22:19:54 911

原创 前缀和&差分【算法 13】

前缀和适合频繁的区间查询,其核心在于通过预处理将区间求和问题简化为常数时间查询。差分数组适合频繁的区间修改,其核心在于记录变化,而不是直接修改原数组。通过灵活使用这两种工具,我们可以高效地处理许多涉及区间的算法问题。

2024-08-30 21:51:28 804

原创 并查集【算法 12】

并查集是一种极为高效的数据结构,特别适用于动态连通性问题。通过路径压缩和按秩合并的优化,保证了其在实际应用中的高效性。

2024-08-29 23:07:55 643

原创 归并排序简介【算法 11】

归并排序(Merge Sort)是一种有效的、稳定的、基于分治法的排序算法。它的核心思想是将数组分成更小的部分,分别进行排序后再合并。归并排序具有 (O(n \log n)) 的时间复杂度,在处理大规模数据时表现优异。

2024-08-28 23:39:59 777

原创 线性表与C语言实现【算法 10】

顺序表是将线性表中的元素按顺序存储在一段连续的存储空间中。在C语言中,通常用数组来实现顺序表。100// 定义顺序表的最大容量// 存放顺序表元素的数组int length;// 顺序表的长度} SeqList;链表通过指针来存储数据,每个节点包含一个数据域和一个指向下一个节点的指针。int data;// 数据域// 指针域,指向下一个节点线性表是数据结构中的重要概念,顺序存储结构和链式存储结构各有优缺点。在顺序表中,查询速度快,但插入和删除操作效率低;

2024-08-27 23:04:42 848

原创 二分查找【算法 09】

二分查找是一种高效且常用的算法,特别适用于在大规模有序数据中查找目标值。无论是通过迭代还是递归实现,二分查找都能在 O(log n) 时间内完成查找操作,是每位程序员都应掌握的基础算法之一。通过掌握二分查找,不仅能提升算法设计的能力,还可以在面试中应对各种查找相关的题目。

2024-08-26 22:20:10 900

原创 使用 C 语言实现字符走迷宫 DFS算法应用

迷宫问题是一个经典的编程问题,通常用于算法训练。我们将通过使用 C 语言来实现一个字符迷宫的求解,其中玩家可以控制字符在迷宫中移动,直到找到出口。

2024-08-25 22:48:39 702

原创 快速幂算法【算法 08】

快速幂算法的核心思想是将指数分解为二进制形式,利用“幂的二次方”特性,将时间复杂度从O(n)(常规幂运算需要乘法 n 次)降低到O(log n)。快速幂算法通过减少幂运算的次数,从而将时间复杂度降到了对数级别。它在各种实际场景中的应用展现了其高效性和实用性。如果你需要处理大整数幂次运算,快速幂无疑是一个理想的选择。

2024-08-24 22:39:27 1173

原创 背包问题【算法 07】

背包问题最早由丹麦数学家 Knuth 提出,其核心思想是:在一组物品中,每个物品都有一定的价值和重量,在背包的容量有限的前提下,选择哪些物品可以使得背包内物品的总价值最大化。背包问题可以表述为:给定n个物品,每个物品i有一个重量w_i和价值v_i,在背包最大承重量W限制下,如何选择物品,使得装入背包的物品总重量不超过W,且总价值最大。w_iv_iWmax∑i1nviximaxi1∑n​vi​xi​其中,x_i表示第i个物品是否被选中,x_i = 1表示选择,

2024-08-23 23:11:35 1001

原创 约瑟夫环问题【算法 06】

JnkJn−1kknJnkJn−1kkn通过递归分析和迭代优化,约瑟夫环问题可以通过 ( O(n) ) 时间复杂度来解决。该问题不仅在计算机科学中有重要的应用,也是一个经典的数学模型问题。

2024-08-22 21:10:46 1296

原创 数据库多表设计:深入理解一对多、一对一、多对多关系 【后端 12】

一对多:适用于一方可以拥有多条关联记录的场景,例如用户和订单。一对一:适用于一方记录需要精确匹配另一方记录的场景,例如用户和用户详细信息。多对多:适用于两方可以有多个关联记录的复杂关系,例如学生和课程。合理的表设计可以提高数据查询的效率,减少数据冗余,并使得业务逻辑更为清晰。设计过程中,务必根据实际业务需求选择合适的表关系,确保系统的可扩展性与维护性。

2024-08-21 23:45:50 2467 1

原创 SQL— DQL语句学习【后端 11】

DQL(Data Query Language,即数据查询语言)是SQL(Structured Query Language)中用于从数据库中检索数据的重要部分。在数据库管理中,DQL语句是日常工作中最常用的工具之一。通过DQL,我们能够从数据库中获取所需的信息,实现数据的精准提取。本文将详细介绍DQL的基础语法,包括基本查询、条件查询、聚合查询、分组查询、排序查询、分页查询等核心内容,并结合具体案例进行说明。

2024-08-20 22:31:50 1224

空空如也

空空如也

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

TA关注的人

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