自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 开源项目吐槽大会:一篇技术文章的大纲设计

高频吐槽点往往对应真实的工程债务。建设性的吐槽需要证据、可复现示例和可执行的建议。使用者与维护者是同一条链路上的合作方,而非对立面。把吐槽沉淀为文档、测试和流程改进,才是最终价值所在。

2026-10-25 19:55:23 102

原创 3 秒建表、0 行代码:我开源了一个低代码平台,把 CRUD 按在地上摩擦

新建一个客户管理,从建表到能增删改查、配好字段权限,30 分钟。后端代码 0 行。每个项目重写一遍,写完还得担心哪里漏了权限、哪里忘了加。这套平台把它们一次性做完了。新建实体 → 配字段 → 点建表 → 配菜单权限,完事。

2026-10-25 19:33:10 498

原创 建表三秒,改字段三天:我搭元数据驱动低代码平台踩过的 7 个坑

建表三秒,改表三天——低代码平台最痛的不是开发,而是变更。本文分享元数据驱动平台的7个核心坑:元数据即源码、物理表与元数据一致性、字段修改限制、内网票据安全、权限细粒度控制、数据范围合并逻辑、以及缓存失效滞后。每个问题背后都是真实业务场景的血泪教训。从“建表即锁死”到“删表重来”,再到“权限过期仍可用”,揭示低代码真正的难点在于“可变性”而非“快速搭建”。唯有设计前考虑手术级变更能力,才能真正实现“快而不僵”。

2026-10-24 23:07:15 206

原创 把大模型当成一次昂贵的 RPC:Java 工程师的 LangChain4j 落地手记

1024 程序员节 · 高效创作之道 · 自由创作方向原创文章,首发 优快云。

2026-10-23 21:16:50 457

原创 我用 Java 写了个会查数据库的 AI,然后它把公司订单全吐出来了

先给结论:那个 bug 不在模型身上,在我的@Tool方法里。,参数是模型填的。用户说"查一下我朋友的订单 A1024",模型就老老实实把A1024填进去了,我的代码老老实实查了,然后老老实实返回了别人的收货地址。整套 AI 功能上线三天,模型表现完美,代码每一行都在正确执行。

2026-10-23 20:38:20 335

原创 LangChain4j + Spring Boot 构建 RAG 聊天系统:关键实现解构

本文介绍了基于LangChain4j和Spring Boot构建RAG聊天系统的关键实现。系统采用流式聊天(TokenStream+SSE)和RAG技术,支持文档上传/解析/分割/嵌入/向量检索。核心组件包括:流式对话处理(ChatServiceImpl)、会话记忆持久化(DatabaseChatMemoryStore)、向量检索(DatabaseEmbeddingStore)和文档分割策略(EnhancedDocumentSplitter)。系统提供聊天、知识库管理、历史记录查询等API接口,并讨论了性能

2026-02-11 16:56:05 643

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

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

2025-12-16 15:14:05 500

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

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

2025-10-24 14:58:55 1141

原创 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 373

原创 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 645

原创 JAVA 并发编程 (一)

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

2025-10-15 17:07:05 1016

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

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

2025-10-15 14:29:22 887

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

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

2024-11-25 17:42:04 1174

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

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

2024-11-25 16:40:37 1453

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

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

2024-11-25 16:32:31 975

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

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

2024-11-25 16:22:19 886

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

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

2024-08-13 10:35:25 1625

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

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

2024-08-13 10:31:29 732

原创 WebKit简介及工作流程

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

2024-06-28 09:31:23 711

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

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

2024-06-24 14:26:49 965

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

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

2024-06-17 11:09:28 323

原创 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 779

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

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

2024-06-07 17:33:23 1687

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

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

2024-06-07 14:00:00 1064

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

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

2024-06-07 10:00:00 694

原创 Vue 组件之间的通信

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

2024-06-06 14:30:47 696

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

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

2024-06-06 14:28:11 508

原创 JAVA 18 新特性详解

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

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

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

{{ text }}</a-table>

2024-06-04 14:22:09 1093

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

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

2024-03-26 09:36:07 1656

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

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

2024-03-25 14:38:51 518

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

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

2024-03-15 09:47:12 1193

原创 爬虫:从原理到实践

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

2024-03-13 18:09:06 517

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

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

2024-03-13 15:30:30 1394

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

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

2024-03-12 19:10:26 1161

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2023-10-20 15:23:09 1860 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关注的人

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