自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于SpringBoot3+Java17+Nacos的配置中心和本地配置文件加解密

Resource@Override@Override// 从环境变量获取密钥// 创建解密器@OverrideBindable<?> target,// 匹配ENC(...)格式// 提取并解密@Bean在通过自定义和,实现了Nacos配置中心和本地配置文件的双重加密保护。关键点在于理解Spring Boot的配置绑定机制和Spring Cloud的解密处理流程,特别是的onSuccess方法在属性绑定后的处理时机。

2025-12-16 15:14:05 359

原创 Vue 3 核心技术演示平台 - 完整技术文档

这是一个全面展示Vue 3核心技术和热点特性的演示平台。项目涵盖了 Vue 3 的所有重要特性,包括 Composition API、响应式系统、生命周期、Teleport、Suspense、自定义指令和组合式函数等。自定义指令用于封装可复用的 DOM 操作逻辑。✅- 更好的逻辑复用✅响应式系统- 基于 Proxy 的强大响应式✅生命周期- 灵活的组件生命周期管理✅Teleport- 突破 DOM 层级限制✅Suspense- 优雅的异步处理✅自定义指令- 可复用的 DOM 操作✅。

2025-10-24 14:58:55 1074

原创 Vue3 管理系统技术点总结文档

Vue3管理系统技术点总结:该项目基于Vue3.3.4+Vite4.4.5构建,采用Composition API管理响应式数据(ref/computed)和生命周期(onMounted/onUnmounted),实现组件化开发(SFC)和模块化状态管理。关键技术包括:模板语法(双向绑定v-model/条件渲染v-if/列表渲染v-for)、组件通信(defineProps/defineEmits)、现代CSS布局(Grid/Flexbox)以及本地数据持久化(localStorage)。项目结构清晰,包含

2025-10-23 15:07:10 340

原创 JAVA 并发编程(二)

因为在addWaiter操作时,是先将当前Node的prev指针指向前面的节点,然后是将tail赋值给当前Node,最后才是能上一个节点的next指针,指向当前Node。state是AQS中的一个由volatile修饰的int类型变量,多个线程会通过CAS的方式修改state,在并发情况下,只会有一个线程成功的修改state(从0~1)AQS中的双向链表是基于内部类Node在维护,Node中包含prev,next,thread属性,并且在AQS中还有两个属性,分别是head,tail。

2025-10-16 09:41:18 618

原创 JAVA 并发编程 (一)

申请内存,关联,初始化,在还没有初始化时,其他线程来获取数据,导致获取到的数据虽然有地址引用,但是内部的数据还没初始化,都是默认值,导致使用时,可能出现与预期不符的结果。在程序启动时,偏向锁有一个延迟开启的操作,因为项目启动时,ClassLoader会加载.class文件,这里会涉及到synchronized操作,synchronized在偏向锁升级到轻量锁时,会涉及到偏向锁撤销,需要等到一个安全点,stw,才可以撤销,并发偏向锁撤销比较消耗资源。

2025-10-15 17:07:05 990

原创 多线程与线程池在Java中的应用实践

本文系统探讨了多线程编程及其在Java中的实现方式,重点分析了线程池的设计与应用。文章首先介绍了多线程的基础概念、优势及挑战,包括线程安全问题、死锁等;随后详细阐述了Java中三种多线程实现方式(Thread类、Runnable接口、Callable接口)及其适用场景。在进阶部分,深入讲解了线程同步机制(synchronized、Lock工具类)、线程通信方式以及原子类的使用。针对线程池,文章从核心概念、参数配置到高级特性(拒绝策略、线程工厂等)进行了全面解析,并提供了实际项目案例(RFID系统)的代码实现

2025-10-15 14:29:22 866

原创 深入优化与扩展:天气预报应用的进阶开发

在完成了基本的天气预报应用后,我们可以进一步进行优化和扩展,以提供更丰富、更用户友好的功能。

2024-11-25 17:42:04 1106

原创 JavaScript网页设计案例:构建一个动态天气预报应用

用户界面输入框:用于输入城市名称。按钮:触发天气查询。显示区域:展示天气信息。功能实现使用Fetch API从OpenWeatherMap API获取天气数据。JavaScript处理用户输入和API响应。动态更新页面内容。样式设计使用CSS美化页面布局和元素。通过这个项目,我们学习了如何使用JavaScript、HTML和CSS构建一个简单的动态天气预报应用。这个应用不仅展示了基本的网页开发技能,还介绍了如何使用API获取外部数据,并在网页上动态展示。

2024-11-25 16:40:37 1311

原创 Spring Boot 应用开发:构建高效、可扩展的 Java 微服务

以下是一个简单的 Spring Boot 小项目示例,该项目是一个基于 Spring Boot 的博客系统后端部分。这个项目将展示如何使用 Spring Boot 框架来创建一个基本的 RESTful API 服务,以管理博客文章。

2024-11-25 16:32:31 929

原创 Vue.js 组件开发:构建可重用且高效的 UI 块

通知父组件methods: {');</script><template><div></div><script>},data() {return {},methods: {

2024-11-25 16:22:19 852

原创 工厂模式和策略模式的区别以及使用

工厂模式是一种创建型设计模式,它定义了一个用于创建对象的接口,但将具体创建过程延迟到子类中。通过工厂模式,客户端代码无需直接实例化对象,而是通过工厂类来获取对象。这种方式可以有效地解耦对象的创建和使用,提高代码的灵活性和可扩展性。策略模式是一种行为型设计模式,它定义了一系列算法或行为,并将每种算法封装在独立的策略类中,使得它们可以互换使用。策略模式让算法的变化不会影响到使用算法的客户端代码,从而提高了代码的灵活性和可维护性。

2024-08-13 10:35:25 1568

原创 Java设计模式之中介者模式

中介者模式是一种对象行为型模式,它用一个中介对象来封装一系列对象之间的交互。中介者模式将对象之间的多对多关系转换为一对多关系,简化了对象之间的通信和依赖管理。在中介者模式中,各个对象通过中介者对象进行通信,而不是直接互相引用和调用。这种设计可以有效地减少对象之间的耦合性,使系统更易于扩展和维护。

2024-08-13 10:31:29 718

原创 WebKit简介及工作流程

加载完成后,WebKit开始解析HTML文档,并构建一个对应的DOM(Document Object Model)树。在样式计算完成后,WebKit会进行布局计算(也称为reflow),确定每个元素在页面上的位置和大小。在样式计算完成后,WebKit会进行布局计算(也称为reflow),确定每个元素在页面上的位置和大小。在构建DOM树的过程中,WebKit还会解析CSS,并计算每个元素的样式。在构建DOM树的过程中,WebKit还会解析CSS,并计算每个元素的样式。接下来,我们将详细解释每个步骤。

2024-06-28 09:31:23 683

原创 决策树算法介绍:原理与案例实现

决策树是一种常用的分类与回归方法,适用于处理非线性关系的数据。它通过一系列的分裂操作,将数据集划分成不同的子集,从而实现数据分类或回归。决策树的优点包括易于理解和解释,处理高维数据的能力强,并且可以处理缺失数据。本文将详细介绍决策树的原理,并通过案例代码实现决策树分类。

2024-06-24 14:26:49 945

原创 Java高级编程技术与算法应用全解析

哈希表是一种高效的数据结构,用于快速查找、插入和删除。示例代码:自定义哈希表/*** 构造函数,初始化哈希表*/i++) {V value;/*** 计算键的哈希值* @param key 键* @return 哈希值*//*** 插入键值对* @param key 键* @param value 值*/// 更新已有键的值return;// 插入新的键值对/*** 获取键对应的值* @param key 键。

2024-06-17 11:09:28 289

原创 Java高级编程技术详解:从多线程到算法优化的全面指南

常见的时间复杂度有O(1)、O(log n)、O(n)、O(n log n)、O(n²)等。算法复杂度是衡量算法效率的重要指标。本文将介绍如何在Java中实现简单的神经网络,以及如何使用DL4J进行深度学习。本文将介绍Java中的并行处理技术和MapReduce算法。最大流算法用于计算网络中的最大流量。空间复杂度表示算法运行过程中占用的存储空间,常见的空间复杂度有O(1)、O(n)等。上述代码的时间复杂度为O(n),空间复杂度为O(1)。上述代码的时间复杂度为O(n),空间复杂度为O(n)。

2024-06-17 11:02:35 750

原创 深入理解 Vue 中的响应式系统

Vue.js 是一个用于构建用户界面的渐进式框架。它的核心特性之一就是响应式系统,这使得数据和视图能够自动保持同步。理解 Vue 的响应式系统不仅能帮助我们更好地使用 Vue,还能为优化和调试 Vue 应用提供有力支持。本文将深入探讨 Vue 的响应式系统,包括其工作原理、实现机制以及使用中的一些难点和注意事项。

2024-06-07 17:33:23 1652

原创 使用 Vue 和 Leaflet 实现地图撒点功能

在现代 Web 应用中,地图功能变得越来越重要。Vue.js 结合 Leaflet 可以轻松实现复杂的地图功能。本文将介绍如何使用 Vue 和 Leaflet 实现地图撒点功能,展示一组数据点在地图上的分布情况。

2024-06-07 14:00:00 1007

原创 在 Vue 中实现算法可视化

算法是计算机科学的核心,而算法可视化有助于更好地理解算法的运行过程。本文将介绍如何在 Vue.js 中实现算法可视化,以排序算法为例,逐步展示数据变化过程。

2024-06-07 10:00:00 670

原创 Vue 组件之间的通信

理解 Vue 组件之间的通信是开发复杂应用程序的关键。通过props和$emit进行父子组件通信,以及使用事件总线或 Vuex 进行兄弟组件通信,你可以更有效地管理和组织代码。

2024-06-06 14:30:47 685

原创 理解 Vue 中的响应式系统

Vue 的响应式系统通过数据劫持来追踪数据变化。当你修改数据时,Vue 能够自动检测到这些变化并更新相关的 DOM 元素。

2024-06-06 14:28:11 485

原创 JAVA 18 新特性详解

Java 18 的发布标志着 Java 语言在性能、安全性和开发效率方面的又一次飞跃。本次更新不仅带来了新的语言特性,还包括了一些实验性功能和工具的改进。下面,我们将依次介绍这些新特性。在 Java 18 中,默认的字符集从原来的更改为 UTF-8。这一变化旨在提升跨平台的一致性和兼容性。之前,不同操作系统的默认字符集可能不同,导致字符编码问题。使用 UTF-8 作为默认字符集,有助于解决这些问题。

2024-06-04 14:32:01 2902 1

原创 Ant-Design-Vue 动态表头并填充数据

{{ text }}</a-table>

2024-06-04 14:22:09 1053

原创 AI大模型学习:优化模型结构与算法,助力智能革命

此外,我们还需要加强跨学科的研究和合作,探索更加有效的解决方案和技术手段,以应对AI大模型学习带来的伦理和社会挑战。因此,在开发和应用AI大模型时,必须严格遵守数据隐私保护的原则,采取必要的技术和管理措施,确保数据的安全性和隐私性。因此,大模型的学习和训练需要依赖于大规模的数据集,数据集的规模和质量对于模型的训练效果起着至关重要的作用。同时,新技术和新方法的不断涌现,如预训练与微调技术的优化、自监督学习方法的拓展等,将为AI大模型学习带来更多的可能性。:AI大模型需要大量的训练数据来学习复杂的特征和模式。

2024-03-26 09:36:07 1609

原创 Node.js 的常用命令详解

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,广泛应用于服务器端开发。在使用 Node.js 进行开发时,熟悉并掌握一些常用的命令是非常重要的。本篇博客将介绍 Node.js 的常用命令,帮助开发者更高效地进行 Node.js 开发。

2024-03-25 14:38:51 494

原创 java使用自定义注解和拦截器防止重复提交的实现详解

具体来说,我们首先获取请求中的 token 信息,并解析其中的用户信息和权限。因此,我们需要一种方法来防止重复提交。综上所述,使用自定义注解和拦截器来防止重复提交是一种比较常见的方法,通过上述步骤,我们可以方便地实现该功能。这个方法需要在其子类中实现,具体的重复提交验证规则可以根据项目需求来定制。缓存中,并设置超时时间。如果该标识已存在,则说明存在重复提交,否则说明是第一次提交。需要注意的是,在该类中,我们提供了一个抽象方法 isRepeatSubmit。如果是重复提交,则返回错误信息,阻止请求继续执行。

2024-03-15 09:47:12 1147

原创 爬虫:从原理到实践

上面的代码演示了使用Python的Requests库和BeautifulSoup库编写简单的爬虫程序,首先发送请求获取页面内容,然后使用BeautifulSoup解析页面并提取所需信息。为了应对页面结构变化,可以使用更加灵活的选择器或者定期更新爬虫程序以适应新的页面结构。有些网站会设置反爬虫机制,比如限制访问频率、验证用户身份等。为了应对这些限制,可以通过设置合理的请求头、使用代理IP、降低访问频率等方式规避反爬虫机制。爬虫是一种自动化程序,通过访问网络页面、提取信息和存储数据的方式来获取网络信息。

2024-03-13 18:09:06 492

原创 java单例线程池,管理线程池的创建和使用

枚举类实现了线程池的单例模式。通过使用单例模式,可以确保整个应用程序只有一个线程池实例,方便统一管理和控制线程池的行为。在这份Java代码中,通过。

2024-03-13 15:30:30 1348

原创 Vue 3 中的常见操作难点及解决方法

在Vue 3中,开发者可能会遇到一些常见的操作难点,本文将结合代码详细说明这些难点,并提供相应的解决方法,帮助读者更好地理解和应对这些挑战。

2024-03-12 19:10:26 1118

原创 Nodejs下对zip文件加密解密后,在java端对该文件进行相同的加密解密

在日常开发中,我们经常需要对敏感数据或文件进行加密以保护其安全性。本文将介绍如何使用的模块实现文件加密和解密的功能。

2024-03-12 18:42:45 1468 1

原创 掌握conda,解锁Python开发的无限可能!

通过掌握常用的conda指令,我们可以轻松创建、切换和删除环境,以及安装、更新和管理软件包。在Python开发中,我们经常需要管理不同版本的库和环境,以保证代码的兼容性和稳定性。而conda是一个非常实用的工具,它可以帮助我们创建、管理和切换不同的Python环境。使用conda创建环境,我们可以在同一台机器上同时运行多个不同版本的Python和软件包,以便适应不同项目的需求。conda的核心思想是创建隔离的环境,每个环境都可以拥有自己独立的Python版本和库,从而避免不同项目之间的冲突。

2023-12-29 11:10:34 473 1

原创 Copilot 技巧:让你的编程变得更高效

或者你可以自定义 Copilot 的行为,例如配置它的插件或添加特定的代码段,以便更好地满足你的需求。通过了解其工作原理、与它良好互动、适应它的习惯、利用文档功能并参与改进,你可以更好地利用 Copilot 的优势,让你的编程工作变得更加高效。记住,Copilot 是一个辅助工具,它不能替代你的思考和判断,但在正确使用的情况下,它将成为你的得力助手。Copilot 还有一个非常有用的功能,即根据你的注释生成文档。当你在编写代码时,Copilot 会根据上下文和你输入的部分代码,生成可能的代码片段供你选择。

2023-12-29 10:57:25 734 1

原创 使用nodejs 根据word模板导出pdf

本文介绍了如何使用 `docxtemplater` 和 `pdfmake` 库来生成 PDF 文件。通过解析 Word 模板文件中的占位符并使用新数据生成 Word 文档,然后将 Word 文档转换为 PDF 格式。这个过程需要注意一些细节,例如模板文件的路径、占位符的格式和 PDF 文件的保存位置。希望这篇文章可以帮助你顺利地生成 PDF 文件并满足你的业务需求。

2023-12-29 10:48:11 3373 6

原创 订单 30 分钟自动关闭,五种方案优雅搞定!

本文总结了目前互联网中,绝大部分的延时任务的实现方案。希望大家在工作中能够有所收获。需要额外进行redis维护。

2023-10-20 15:23:09 1776 1

原创 java面试题数据算法和并发

数据算法面试问题:并发面试问题:数据算法问题:并发问题:

2023-10-20 15:04:52 92 1

原创 还在用 !=null 判空?试试 Java8 的全新写法吧!

先介绍一下API,与其他文章不同的是,本文采取类比的方式来讲,同时结合源码。而不像其他文章一样,一个个API罗列出来,让人找不到重点。

2023-09-28 10:17:49 277

原创 面试官问:生成订单30分钟未支付,则自动取消,该怎么实现?

该方案使用redis的Keyspace Notifications,中文翻译就是键空间机制,就是利用该机制可以在key失效之后,提供一个回调,实际上是redis会给客户端发送一个消息。是需要redis版本2.8以上。该方案是利用JDK自带的DelayQueue来实现,这是一个无界阻塞队列,该队列只有在延迟期满的时候才能从中获取元素,放入DelayQueue中的对象,是必须实现Delayed接口的。结合以上两个特性,就可以模拟出延迟消息的功能,具体的,我改天再写一篇文章,这里再讲下去,篇幅太长。

2023-09-26 10:30:00 251

原创 IDEA 必备插件:一款快速解决 Maven 依赖冲突的神器!

2、点击“Plugins”->“Marketplace”->输入"mavn helper"->点击“install”->点击“OK”完成安装。②:或者右边的Mavn里面选择“Dependencies”后点击右上角“Show Dependencies”图标后,会显示出依赖关系图。3、当没有依赖冲突或者解决依赖冲突时,当选择Conflicts时,右上角会多了个“No Conflicts”4、当出现冲突需要解决时,下面会显示冲突的信息,我们可以选择冲突的依赖 Exclude它。Conflicts(查看冲突)

2023-09-25 09:18:34 645 1

原创 MySQL模糊查询再也用不着 like+% 了!

我们都知道 InnoDB 在模糊查询数据时使用 "%xx" 会导致索引失效,但有时需求就是如此,类似这样的需求还有很多,例如,搜索引擎需要根基用户数据的关键字进行全文查找,电子商务网站需要根据用户的查询条件,在可能需要在商品的详细介绍中进行查找,这些都不是B+树索引能很好完成的工作。AGAINST()接收一个要搜索的字符串,以及一个要执行的搜索类型的可选修饰符。上述语句,查询同时包含 'MySQL','database','DBMS' 的行信息,但不包含'DBMS'的行的相关性高于包含'DBMS'的行。

2023-09-22 10:22:18 243 1

原创 Spring Cloud 面试宝典

在微服务架构中,服务之间可能存在复杂的依赖关系,当某个服务出现故障时,它可能会导致其他服务的调用失败,从而引发级联故障或服务雪崩效应,甚至会导致整个系统崩溃。服务注册和发现是微服务架构中的基础设施,它使得服务实例可以自动注册到一个中心化的服务注册表中,并可以从中检索服务实例的位置和状态信息。在微服务架构中,API 网关是非常重要的组件,可以实现服务的统一管理和访问控制。微服务架构是一种软件开发方法,是指将应用程序设计为由多个服务组件构成的系统,每个服务组件都是独立的,可以独立部署、独立扩展、独立升级。

2023-09-20 17:36:43 226 1

Java 2025最新面试题及答案

Java 2025最新面试题及答案

2025-10-15

java中使用swing 和图形绘制和事件处理来进行分数计算方块操作的娱乐

这是一个使用Java语言编写的俄罗斯方块小游戏代码。游戏的目标是移动、旋转和放置不同形状的方块,使它们在游戏区域内形成完整的水平行,当一行被填满时,该行将消失并得分。游戏将根据玩家的得分逐渐增加难度,并记录最高分。 使用场景及用途: 这个俄罗斯方块小游戏可以在各种平台上使用,如计算机、手机、平板电脑等。它可以作为休闲娱乐游戏,供玩家在碎片时间进行放松和娱乐。此外,这个小游戏还可以用于教学目的,帮助学生学习编程技巧和逻辑思维。 该游戏代码的用途包括但不限于以下几点: 学习和实践Java编程技巧:通过阅读和理解该代码,学习者可以了解和掌握Java语言的基本语法、面向对象编程概念和常用的游戏开发技术。 开发自己的游戏项目:该代码提供了一个基本的游戏框架,开发者可以在此基础上进行二次开发,添加新的功能和特性,定制自己的俄罗斯方块游戏。 教学示例和练习项目:教师可以使用该代码作为示例来讲解面向对象编程、游戏开发等内容,供学生进行实践和练习。

2024-03-13

Windows Bat脚本-快速切换Java版本

批处理脚本:JDK版本切换脚本 功能简介: 该批处理脚本允许用户在多个JDK版本之间进行切换,并设置所选版本的JAVA_HOME环境变量,以便用户可以轻松切换不同的Java开发环境。 实现细节: 获取管理员权限: 在脚本开头,使用mshta命令获取管理员执行权限,确保脚本可以成功执行需要管理员权限的操作。 显示当前JDK版本: 使用java -version命令显示当前系统中已安装的Java版本信息。 列出可选操作: 遍历脚本所在目录下的所有子文件夹,将其作为可选的JDK版本。 用户可以通过输入相应数字来选择要切换至的JDK版本,或选择取消切换操作。 设置JAVA_HOME环境变量: 根据用户选择的数字获取对应的JDK版本路径。 将该路径设置为JAVA_HOME环境变量,并使用setx命令使其永久生效。 显示切换结果: 显示成功切换JAVA_HOME环境变量至所选JDK版本的信息。 退出操作: 用户按任意键后退出脚本执行。 使用方法: 运行脚本时,会列出可选的J 附件另一个 Env.bat 是设置 CLASSPATH、PATH 两个环境变量的,点击执行一次即可!!!

2024-03-13

空空如也

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

TA关注的人

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