自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Trie --字典树/前缀树

Trie(读音为“try”)是一种树形数据结构,主要用于存储字符串集合,以便能够快速地检索字符串。Trie的每个节点代表一个字符,通过从根节点沿着边走向下一个节点,可以形成存储的字符串。Trie的特殊之处在于,它通过共享前缀来节省存储空间,以提高检索速度。Trie不仅可以用于单纯的字符串存储,还可以用于前缀匹配、自动补全、拼写检查等应用场景。它是一种高效的多路搜索树,特别适合用于处理大量字符串的情况。

2024-11-02 18:01:31 387

原创 Java--正则表达式入门指南

正则表达式在Java中是强大且灵活的工具,用于字符串的匹配和处理,必须掌握Pattern和Matcher类的用法。希望这篇博客能为您的Java正则表达式学习之旅提供帮助!

2024-11-02 17:29:48 1284

原创 Postman:高效的API测试工具

Postman是一款功能强大的API开发工具,允许开发者轻松创建、测试和管理API请求。它提供了一个用户友好的界面,可以发送各种类型的HTTP请求(如GET、POST、PUT、DELETE等),并查看响应结果。Postman支持多种数据格式,包括JSON、XML等,使得它成为开发和测试RESTful API的理想选择。Postman作为一款强大的API测试工具,为前后端分离开发中的后端接口测试提供了极大的便利。它不仅简化了API请求的构建过程,还支持自动化测试、环境管理和团队协作。

2024-10-30 17:32:53 1221

原创 Tomcat 11 下载/安装 与基本使用

Tomcat是一个轻量级的Web服务器,主要用于运行Java Servlet和JSP。它封装了HTTP协议,使得开发者能够更方便地构建和管理Web应用程序。由于其开源和跨平台的特性,Tomcat受到许多Java开发者的青睐。

2024-10-29 17:32:03 1120

原创 理解HTTP、HTTPS、TCP、UDP与OSI七层模型:网络访问的基础

1. HTTP(超文本传输协议)定义:HTTP是一种无状态的应用层协议,主要用于在Web浏览器和服务器之间传输数据。特点明文传输:数据以未加密的形式传输,容易被第三方截获。无连接性:每个请求都是独立的,服务器不保留连接状态。请求-响应模型:客户端发起请求,服务器返回响应。2. HTTPS(安全超文本传输协议)定义:HTTPS是在HTTP上增加了SSL/TLS加密层,以提供更高的安全性。特点加密传输:通过SSL/TLS对数据进行加密,确保数据在传输过程中不被窃取或篡改。身份认证。

2024-10-28 14:49:12 1204

原创 HTTP与HTTPS协议

HTTP协议是一种无状态的协议,意味着每一次请求都是独立的,服务器不会记录任何关于客户端的状态。HTTP的工作流程主要分为请求和响应两个部分。HTTP和HTTPS是现代互联网中不可或缺的协议。虽然HTTP仍然被广泛使用,但由于其安全性不足,越来越多的网站正在转向HTTPS,以保护用户数据和隐私。在选择使用哪种协议时,建议优先考虑安全性,以确保信息传输的安全和可靠。

2024-10-28 14:24:47 1221

原创 JDBC: Java数据库连接的桥梁

Java数据库连接(,简称JDBC)是Java提供的一种API,允许Java应用程序与各种数据库进行交互。JDBC提供了一组标准的接口,开发者可以利用这些接口执行SQL语句、处理结果集以及管理数据库连接。通过JDBC,Java应用程序能够轻松地进行增删改查操作(CRUD),使得数据库操作变得简单而高效。JDBC 是 Java 开发中必不可少的组成部分,它为开发者提供了一种灵活、标准化的方法与数据库交互。尽管存在一些缺点,但通过合理的设计和封装,可以最大限度地发挥 JDBC 的优势。

2024-10-27 22:00:09 1036

原创 Maven-依赖

Maven的依赖管理功能丰富,能显著提高Java项目的开发效率。从依赖的配置、传递、范围到生命周期管理,掌握这些概念可以帮助你更好地管理项目依赖,减少依赖冲突,提高构建的稳定性。在日常开发中,合理利用Maven的依赖管理,能够让你的项目构建变得更加轻松和高效。

2024-10-24 17:30:18 826

原创 Maven3.9.9环境安装配置

Maven的核心是项目对象模型POM),它是Maven构建和管理项目的基础。POM以XML格式存在,包含了项目的基本信息、构建配置、依赖管理等内容。project:根元素,标识这是一个Maven项目。:指定POM模型的版本,通常为4.0.0。groupId:定义项目所属的组织或公司标识。artifactId:项目的唯一标识,通常是项目名称。version:项目的版本号,用于区分不同版本的构建。Maven在本地机器上维护一个本地仓库,默认位置为用户主目录下的。

2024-10-23 18:38:41 1377

原创 MySQL 数据库--查询

MySQL 是一种开源的关系型数据库管理系统,以易用性和高性能著称。其广泛应用于多种场景,如网站数据存储、企业内务管理和大数据分析等。今天,我们将通过一个员工管理数据库的例子,来学习 MySQL 最重要的查询操作。掌握 SQL 查询的灵活性,能够极大提高数据处理的效率和科学性。这些主要是针对一张表的单表查询,后面会涉及到主键和约束,多表联合查询,希望这篇博客能为你提供有益的 SQL 查询知识,让你能够处理单表查询,后面我会继续更新一些多表联合查询的文章,敬请期待……

2024-10-16 17:02:35 595

原创 Element-快速入门

在现代前端开发中,组件化的思想日益盛行,Element组件库作为一款流行的UI组件库,特别适用于基于Vue.js的项目,它为开发者提供了丰富的组件和良好的开发体验。想要使用Element的组件库,我们需要完成下面三步……Element组件库作为一款优秀的UI库,不仅丰富了Vue开发者的组件选择,它的易用性和性能优势使得在开发过程中得心应手。无论是前端新手还是经验丰富的开发者,都能从中受益。

2024-10-09 18:12:15 1148

原创 Vue脚手架项目创建 --保姆级教程

创建好后,可以看到下载了一堆文件,我们用VScode 打卡,来逐个了解一下这些文件我们详细探讨了如何使用 Vue CLI 创建和启动 Vue 项目,从项目的配置到结构的理解,再到实际的运行和端口修改。希望通过这篇文章,您能够轻松上手 Vue 开发,探索更多前端技术的可能性。无论是构建小型项目还是大型应用,掌握这些基础知识都是至关重要的。如果您有任何问题或建议,欢迎在评论区留言,让我们一起交流学习!

2024-10-09 16:27:07 1033

原创 前端工程化-Vue3脚手架安装

Vue脚手架是官方提供的标准化开发工具,其主要功能是简化Vue项目的创建和配置,从而提升开发效率。它支持命令行和UI界面,能自动生成项目结构、配置第三方依赖和进行开发环境管理等。通过以上步骤,你可以顺利安装Vue CLI和创建新的Vue项目。Vue脚手架不仅能简化开发流程,还能帮助你快速配置项目环境,提升开发效率。

2024-10-08 09:30:00 1054

原创 前后端分离开发&YApid

前后端分离开发模式在提升开发效率和维护性的同时,也为团队协作提供了更好的支持。而YApi作为现代化的接口文档管理工具,通过清晰的文档管理、便捷的接口测试和灵活的Mock功能,极大地促进了前后端的协作。使用YApi,可以显著降低因接口不一致引起的开发问题,提高整体开发质量。通过这些优良的实践,开发团队能够更好地应对日益变化的业务需求和技术挑战。

2024-10-07 16:56:19 1149

原创 Axios 快速入门

Ajax 是一种通过 JavaScript 发送异步请求的技术,它的核心是使用 XMLHttpRequest 对象来与服务器交换数据。这种方式较为繁琐,因为需要手动处理请求状态和响应,并且编写的代码往往比较冗长。相较之下,Axios 是一个基于 Promises 的 HTTP 客户端,简化了发送请求的过程,使得处理 HTTP 请求更加直观和便捷。Axios 封装了 XMLHttpRequest,并提供了一系列功能,例如请求和响应拦截、自动转换 JSON 数据等。

2024-10-07 16:14:26 683

原创 Vue-快速入门

Vue.js是一个用于构建用户界面的渐进式JavaScript框架。与其他重型框架不同,Vue的设计理念强调自底向上的增量开发,核心库专注于视图层,易于逐步引入到现有项目中。Vue允许开发者使用声明式的模板语法,有效地管理数据和界面之间的关系。它不仅适合于单页应用(SPA),也能够用于更复杂的企业级应用。响应性:Vue能够自动追踪所有依赖于数据的状态,当这些状态变化时,会自动更新界面。组件化:开发者可以将应用拆分成多个组件,每个组件拥有自己的模板、逻辑和样式,便于维护和复用。渐进式框架。

2024-10-06 17:18:22 924

原创 JavaScript-下篇

在 JavaScript 中,我们可以使用对象字面量的语法来创建自定义对象。age: 30,alert("干饭!");在这个示例中,我们创建了一个名为person的对象,它有三个属性(nameage和city)以及一个方法(eat这个eat方法在被调用时会弹出一个消息框,显示“干饭!我们可以通过对象的名称加上点操作符来调用方法。例如,调用eat方法和输出name属性的值。// 调用 eat 方法// 输出 name 属性的值这段代码将弹出“干饭!”的提示框,并且接着显示当前对象的name属性。

2024-10-05 11:23:01 913

原创 JavaScript-上篇

JavaScript(简称JS)是一种高层次、解释型的编程语言,最初由布兰登·艾奇(Brendan Eich)于1995年创建,并首次出现在网景浏览器中。JS的设计初衷是为Web页面提供动态交互功能,因此与HTML和CSS一起构成了Web的三大核心技术。随着时间的推移,JavaScript不断发展,成为如今最流行的编程语言之一。JavaScript作为Web开发的重要工具,通过不断的演进与扩展,已经成为现代应用开发中不可或缺的一部分。

2024-10-04 17:29:08 1098

原创 Java SE 总结

try {throw new MyException("自定义异常");

2024-09-29 19:13:28 1394

原创 离散化 ---( 求区间和)

离散化是将连续的数值范围映射到有限的、离散的数值集合的过程。在许多情况下,数据可能会存在多个重复值或范围较大的连续值。为了简化处理,尤其是处理区间查询和增量问题时,我们可以将这些值转换为一组有限的、唯一的值(即离散值),从而更高效地进行操作。例如,如果我们有一组数值 {1.1, 1.2, 1.15, 2.5},在离散化后,我们可能会将其映射为 {1, 2, 3} 这样的索引值,便于后续的操作。用离散化的方式有效处理增量操作和区间查询问题。

2024-09-26 19:02:14 777

原创 位运算--(二进制中1的个数)

x & -x位运算性能优越,适用于多种场景。通过介绍这两种基本位操作,我们可以更加深入地理解和运用位运算,从而提升编程效率。希望能对你有所帮助……

2024-09-25 21:32:29 447

原创 双指针算法详解

双指针算法是一种常用的算法策略,通常用于处理有序数组或链表,能够高效地解决许多问题。其核心思想是通过维护两个指针在数组或链表中移动,从而达到减少时间复杂度的目的。我们将通过三个示例代码来深入了解双指针算法的应用。双指针算法是处理数组和链表问题中非常高效的一种策略。通过上述示例,我们可以看到双指针的灵活运用可以有效解决问题,尤其是在减少时间复杂度方面优势明显。在开发过程中,熟悉双指针的应用场景将对我们解决实际问题有很大帮助。希望这些示例和逻辑解释能够帮助你更好地理解双指针算法。

2024-09-25 21:17:08 830

原创 Java-多线程----生产者/消费者模型

生产者消费者模型是一种常用的并发模式,用于解决生产者和消费者之间的协调问题。在这个模型中,生产者负责生产物品(例如食物),而消费者负责消费这些物品(例如学生用餐)。两者通过一个共享的队列进行沟通,从而实现数据的有效传递。通过这个模型,生产者可以在不需要等待消费者处理的情况下,将生成的食物放入队列中,而消费者则可以在队列中获取食物,避免了两者之间的强耦合。这种解耦设计提升了系统的灵活性和效率。通过实现生产者消费者模型,学校食堂能够更高效地运作,从而提升就餐体验。

2024-09-24 19:18:47 693

原创 理解线程的三大特性:原子性、可见性和有序性

在多线程编程中,为了确保原子性、可见性和有序性,我们可以使用锁(如和)来保护共享资源。理解和灵活运用锁,是进行并发编程的必备技能。无论选择哪种锁,都应确保在执行完关键操作后及时释放锁,以防止潜在的死锁问题和资源浪费。

2024-09-24 11:27:42 924

原创 栈(Stack):基于链表和数组

E pop();E peek();栈可以通过链表或数组两种方式实现,各有其优缺点。在选择具体实现时,应根据应用场景、内存限制及性能需求来决定使用哪种方式。对于需要动态调整大小且频繁进行插入和删除操作的场合,可以选择链表实现;而对于固定大小且对性能要求较高的场合,则可选择数组实现。

2024-09-18 18:01:19 452

原创 二叉树的层序遍历

二叉树是一种常见的数据结构,由节点组成。每个节点最多可以有两个子节点,分别称为左儿子和右儿子。二叉树广泛应用于各种算法和数据结构中,例如表达式树、搜索树等。

2024-09-18 16:43:06 365

原创 前缀和与差分

了解前缀和与差分,不仅能有效提高区间和查询的效率,还能快速处理区间更新。掌握这些算法,可以帮助我们解决许多实际编程挑战,使我们在面对大数据时更加得心应手。

2024-09-17 15:03:41 467

原创 环形数组与单向链表的队列实现(Queue)

队列是一种重要的线性数据结构,具有先进先出(FIFO)的特性。元素的插入操作称为入队,删除操作称为出队。队列在许多计算机科学应用中非常常见,如任务调度和数据缓冲等。在实现队列时,可以使用数组或链表。尽管数组实现可以简单直观,但在某些情况下,尤其是出队操作频繁时,使用链表会更加优越。因为链表在出队时不需要移动后面的数据,相比之下,数组实现可能会在数组头部出队时造成效率低下,更需要手动位移元素。/***队列接口*///添加元素到队尾E poll();//删除队首元素,并返回该元素E peek();

2024-09-17 11:52:26 1049

原创 归并排序(Merge Sort)

归并排序(Merge Sort)是一种经典的排序算法,它采用分治法(Divide and Conquer)策略,将一个大数组分为两个小数组,分别进行排序,然后将这两个已排序的小数组合并成一个有序的大数组。归并排序在最坏情况下的时间复杂度为 O(nlog⁡n)O(nlogn),并且是一种稳定的排序算法。归并排序是一种高效且稳定的排序算法,适用于大规模数据的排序。通过分治法的思想,归并排序能够在最坏情况下保持 O(nlog⁡n)O(nlogn) 的时间复杂度。

2024-09-15 10:42:58 1091

原创 快速排序(分治思想)

快速排序(Quick Sort)是一种广泛使用的高效排序算法,由计算机科学家托尼·霍尔在1960年提出。它采用分治法(Divide and Conquer)策略,将一个大数组分为两个小数组,然后递归地对这两个小数组进行排序。快速排序在平均情况下具有良好的性能,时间复为 O(nlog⁡n)O(nlogn),并且在实际应用中通常比其他 O(nlog⁡n)O(nlogn) 的排序算法(如归并排序和堆排序)更快。在快速排序的实现中,我们使用两个指针i和j来进行分区操作。i。

2024-09-13 18:23:52 1363

原创 Scala&尾递归解决爆栈问题

Scala的尾递归优化

2024-09-12 20:00:55 1361 4

原创 最全面的递归算法详解,一篇足矣(高手必备)

递归是一种强大的编程技术,允许函数在其定义中调用自身。基本情况:这是递归的终止条件,当满足此条件时,函数将不再调用自身。递归情况:这是函数调用自身的部分,通常会将问题规模缩小。多路递归是指一个函数在递归调用时,同时调用多个子问题。在斐波那契数列的例子中,同时调用了和,这种并行调用的方式就是多路递归。多路递归可能会导致重复计算和较高的空间复杂度,但可以通过记忆化或动态规划来优化。

2024-09-11 17:43:19 1419

原创 Java-实现双向环形链表

双向环形链表不仅支持双向遍历,还形成一个闭合环,即最后一个节点的next指针指向链表的头部,第一个节点的prev指针指向链表的尾部。使用这种结构可以实现更加灵活的循环遍历操作。双向环形链表是编程中一种强大且灵活的数据结构,它可用于在循环访问中保持高效。通过合理设计Node结构和使用哨兵节点,我们简化了边界条件的处理,提供了更直观的操作方法。希望对你有所帮助。

2024-09-10 11:52:23 634

原创 Java-双向链表的实现

双向链表是一种灵活且高效的数据结构,它通过每个节点中的前后指针,使得在链表中的任意位置进行插入和删除操作变得简单。希望对你有所帮助。

2024-09-10 10:22:48 483

原创 Java 中常用内置接口函数

Java 的内置函数式接口提供了强大的功能,使得开发者能够以更简洁的方式编写代码。通过SupplierConsumerFunction和Predicate,我们可以轻松地实现延迟计算、数据处理、类型转换和条件判断。这些接口在 Java 8 的流式 API 中得到了广泛应用,极大地提升了代码的可读性和可维护性。希望对你有所帮助。

2024-09-08 15:22:21 545

原创 JDK 8 新增特性:Lambda 表达式

Lambda 表达式是 JDK 8 引入的一种新的语法特性,它允许我们将函数作为参数传递给方法,或者将代码视为数据。Lambda 表达式的基本形式是:为什么要用Lambda 表达式 简化代码:Lambda 表达式可以替代匿名内部类,使代码更加简洁。 函数式编程:Lambda 表达式支持函数式编程,使得 Java 可以更好地处理集合数据。 提高可读性:通过 Lambda 表达式,代码的可读性得到了显著提升。 示例: 假设我们有一个 类,包含 和 两个属性。我们希望

2024-09-08 10:52:48 1010

原创 Java网络编程入门

Socket是网络通信的基本组件,它为应用程序提供了一个与网络进行交互的接口。通过Socket,程序可以发送和接收数据,类似于文件操作的方式。建立连接:客户端通过Socket连接到服务器。数据传输:一旦连接建立,双方可以通过输入输出流进行数据的发送和接收。关闭连接:通信完成后,Socket会被关闭以释放资源。ServerSocket是专门用于服务器端的Socket,它负责监听客户端的连接请求。监听端口:在指定的端口上等待客户端的连接请求。接受连接。

2024-09-07 14:58:51 819

原创 Java中的IO流详解

Java中的IO流是处理数据的强大工具,字节流和字符流各有其适用场景。通过理解它们的关系和使用方式,可以高效地进行数据读写操作。对于不同类型的流,选择合适的实现类是关键。

2024-09-07 13:23:02 748

原创 Java-单向链表实现

链表是一种常见的数据结构,用于存储一系列元素。与数组不同,链表中的元素(节点)在内存中不必是连续的。每个节点包含数据部分和指向下一个节点的引用(指针)。链表的主要优点是插入和删除操作的时间复杂度为O(1),但访问特定元素的时间复杂度为O(n)。哨兵节点(也称为哑节点或伪节点)是一个特殊的节点,通常不包含实际数据,仅用于简化链表的操作。在单向链表中,哨兵节点通常作为头节点使用,使得链表的插入、删除等操作更加统一和简单。

2024-09-06 19:56:12 793

原创 Java——动态数组实现的原理与应用

动态数组通过在运行时调整大小,提供了比传统数组更大的灵活性。通过合理使用Java的API,如和IntStream,可以高效地实现动态数组的各种操作。希望这篇博客能帮助你更好地理解动态数组的实现原理及其应用。

2024-09-06 10:00:00 382

空空如也

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

TA关注的人

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