自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mcp-grafana mcp 使用stdio报错

解决,Ai Agent mcp 使用sdtio方式连接报错。

2025-11-29 22:26:45 183

原创 java设计模式八、组合模式

组合模式是一种常用的结构型设计模式,它通过将对象组合成树形结构来表示"部分-整体"的层次关系。组合模式让客户端可以统一地处理单个对象和组合对象,无需关心自己处理的是单个对象还是整个组合结构。这种模式不仅提高了代码的复用性,还大大简化了复杂层次结构的处理逻辑。组合模式(Composite Pattern)由GoF在《设计模式》一书中提出,它允许你将对象组合成树形结构来表示部分-整体的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性,这是该模式的核心思想。

2025-10-28 17:43:48 1267

原创 java设计模式七、代理模式

代理模式是一种常见的设计模式,它通过创建一个代理对象来控制对原始对象的访问。这种模式在现实生活中有很多类比,比如房产中介、律师代理等,他们都代表另一个人或组织执行某些功能。控制对原始对象的访问添加额外的功能(如日志、权限检查)延迟创建开销大的对象提供远程访问的本地代表代理模式是软件开发中非常重要的设计模式,它通过引入代理对象来控制对原始对象的访问。静态代理简单直观但灵活性差,动态代理则提供了更大的灵活性。静态代理:适用于代理类较少、功能明确的场景JDK动态代理。

2025-10-23 21:28:07 797

原创 java设计模式六、装饰器模式

装饰器模式是一种结构型设计模式,它允许在不改变对象原有结构的情况下,动态地给对象添加额外的功能。这种模式通过创建包装对象来实现功能的扩展,是继承的一个替代方案。核心思想:在保持接口不变的前提下,对原有功能进行扩展和增强。装饰器模式通过组合的方式,在不修改原有代码的基础上为对象动态添加功能,体现了"组合优于继承"的设计原则。在实际开发中,合理使用装饰器模式可以让代码更加灵活、可扩展,同时保持良好的结构清晰度。通过本文的三个示例,我们可以看到装饰器模式在不同场景下的应用:缓冲功能、历史记录功能和日志功能。

2025-10-22 21:20:27 465

原创 java设计模式五、适配器模式

适配器模式(Adapter Pattern)是一种结构型设计模式,它允许不兼容的接口之间进行协作。简单来说,适配器模式就像是一个"转换器",在两个不兼容的系统之间架起一座桥梁,让它们能够正常通信。/*** Type-C接口定义* 这是现代设备常用的接口标准*//*** Type-C连接方法*//*** USB接口定义* 这是传统设备常用的接口标准*//*** USB连接方法*/

2025-09-28 23:54:41 797

原创 java设计模式四,原型模式

原型模式是一种创建型设计模式,它通过复制现有对象来创建新对象,而不是通过实例化新对象的类。这种模式特别适用于创建成本较高的对象,或者需要动态配置对象的场景。原型模式是一种强大的创建型设计模式,它通过复制现有对象来创建新对象,避免了重复的初始化操作,提高了系统性能。在实际开发中,我们需要根据具体需求选择合适的拷贝方式(浅拷贝或深拷贝),并注意处理好对象之间的引用关系。通过合理使用原型模式,我们可以创建出更加灵活、高效的系统,特别是在需要创建大量相似对象或对象创建成本较高的场景中,原型模式能够发挥重要作用。

2025-09-21 17:20:12 922 1

原创 java设计模式三、创建者模式

创建者模式(Builder Pattern)是一种设计模式,属于创建型模式的一种。它的核心思想是将一个复杂对象的构造与其表示分离,使得同样的构建过程可以创建不同的表示。这种模式通过将复杂对象分解为多个相对简单的部分,然后一步一步构建而成,从而提高了代码的灵活性和可读性。简单来说,创建者模式就像是建筑工程师与施工队的关系:工程师负责设计蓝图和施工步骤(构建过程),而施工队根据蓝图一步步施工(创建对象),最终完成建筑(复杂对象)。

2025-09-14 18:36:50 965

原创 java设计模式二、工厂

工厂方法模式是一种常用的创建型设计模式,它通过将对象的创建过程封装在工厂类中,实现了创建与使用的分离。这种模式不仅提高了代码的复用性,还增强了系统的灵活性和可扩展性。本文将详细介绍工厂方法模式的三种形式:简单工厂模式、工厂方法模式和抽象工厂模式,并通过Java代码示例帮助你深入理解。工厂方法模式(Factory Method Pattern)由父类提供一个创建对象的方法,允许子类决定实例化对象的类型。这种模式的核心思想是解耦- 将对象的创建过程与使用过程分离,使得代码更容易维护和扩展。

2025-09-07 22:53:01 1393

原创 java设计模式一、单例模式

单例模式是一种常用的软件设计模式,它的核心思想是确保一个类只有一个实例,并且提供一个全局访问点来获取这个实例。简单来说,就是“只创建一个对象,或者每次使用的对象都是同一个对象”。这种模式在许多场景下非常有用,比如配置信息管理、线程池、数据库连接池、日志对象等,这些情况下我们需要确保全局只有一个实例存在,以避免资源浪费或状态不一致的问题。单例模式是设计模式中最简单但也是最常被问到的模式之一。正确实现单例模式需要考虑线程安全、懒加载、序列化等问题。

2025-09-01 22:54:12 1457

原创 设计模式概述:为什么、是什么与如何应用

设计模式不是银弹,而是一种思维工具。真正优秀的开发者不是背诵所有模式,而是理解其思想,在合适的场景中灵活运用。希望通过本文,你能对设计模式有一个更清晰、更实用的认识。fill:#333;color:#333;color:#333;fill:none;设计模式六大原则SRPOCPLSPLoDISPDIP三大类型创建型结构型行为型。

2025-08-31 16:01:08 1298

原创 java基础(十七)操作系统(下)

中断是 CPU 暂停当前任务,转去处理其他事件,处理完毕后返回原任务的过程。

2025-08-30 00:13:59 1196

原创 java基础(十六)操作系统(上)

用户态(User Mode)和内核态(Kernel Mode),它们在权限和可执行操作上有显著区别。

2025-08-27 23:59:43 926

原创 java基础(十五)计算机网络

为了使得多种设备能通过网络相互通信,并解决各种不同设备在网络互联中的兼容性问题,国际标准化组织(ISO)制定了开放式系统互联通信参考模型(OSI模型)。与此同时,TCP/IP模型作为实际应用中更为广泛的模型,成为了互联网的基石。本文将详细介绍OSI七层模型和TCP/IP四层模型,并深入探讨HTTP、TCP等核心协议的工作原理、常见问题及优化方法。fill:#333;color:#333;color:#333;fill:none;网络模型概述OSI七层模型TCP/IP四层模型应用层: 提供接口。

2025-08-25 22:56:57 1354

原创 Java基础(十四)分布式

分布式系统设计需在一致性、可用性、性能之间权衡。服务治理:Nacos(注册中心+配置中心)流量控制:Sentinel(限流+熔断+降级)分布式事务:Seata(AT/TCC/Saga模式)消息队列:RocketMQ(顺序消息+事务消息)RPC框架:Dubbo(高性能服务调用)API网关:Spring Cloud Gateway(路由+过滤)

2025-08-24 21:26:13 1235

原创 java基础(十三)消息队列

消息队列(Message Queue,简称 MQ)是一种用于在不同系统、服务或组件之间传递消息的通信机制。你可以将其理解为一个中间转发器,负责接收、存储和投递消息,实现系统间的解耦、异步通信和流量削峰。消息队列作为分布式系统的核心组件,在现代架构中扮演着越来越重要的角色。

2025-08-21 21:07:56 1512

原创 不要过度焦虑

最近疯狂刷到分享一个刷到一个很有意义的视频(对我而言)顺便水一篇你曾经解决过的事都是你的能力无论大小,无论是否困难,这些都可以为你与其他人进行价值交换提供可能,但是你先需要做的是了解你自己有解决那些问题,整理一张自己解决问题的清单他们都有可能为你提供一定的帮助,不是把自己的人生困在一个格子里面(提示不要喷我,喷我我就写成功抗住了网友的一次攻击) =记得需要去更新你的表格让变得无限长对了他还提到一公式行为=动机*能力*提示。

2025-08-20 23:13:40 1034

原创 java基础(十二)redis 日志机制以及常见问题

Redis 作为基于内存的数据库,其所有读写操作均在内存中进行,因此具备极高的性能。然而,内存中的数据在 Redis 重启后会丢失。为了确保数据的持久性,Redis 实现了数据持久化机制,将数据保存到磁盘中,以便在重启后能够恢复数据。AOF(Append Only File)日志和RDB(Redis Database)快照。Redis 作为高性能的内存数据库,在现代应用架构中扮演着重要角色。通过合理使用 Redis 的持久化机制、内存管理策略和集群方案,可以构建出高可用、高性能的应用系统。

2025-08-19 22:39:53 1127

原创 java基础(十一)redis基础概念以及演化

应用场景:缓存对象、计数器(如文章阅读量)、分布式锁、Session 共享。元素数 < 128 且 元素值 < 64B → 压缩列表(ziplist)查找节点4的路径:L2(3) → L1(3) → L0(4)(只需3步)应用场景:消息队列、最新文章列表(需注意无消费组支持)应用场景:共同关注、抽奖、标签系统(利用并/交/差集)应用场景:对象属性存储(如用户信息)、购物车。创建2倍大小的新哈希表(ht1 → ht2)每次请求迁移1个bucket(非阻塞)Redis 7.0+ 使用。完成迁移后ht1置空。

2025-08-18 20:32:58 980

原创 java基础(十)sql的mvcc

通过全面理解MySQL的事务机制、锁策略、日志系统及优化技巧,可构建高性能高可用的数据库架构。在实际应用中,需根据业务场景灵活选择隔离级别、锁机制和分片策略,如YA33在处理金融交易时应采用串行化隔离级别,而在用户日志分析场景可使用读已提交级别提升并发性能。当一个读取事务进来,与最小的活跃事务id进行比较,小就读,不小就继续。判断是否与本身的事务id相等,相等就读,不相等就继续。然后与最大的事务id进行比较,大就不读,小就继续。判断是否在活跃事务列表里面,在就不读,不在就读。:记录物理修改,确保故障恢复。

2025-08-17 13:50:17 1510 2

原创 java基础(九)sql基础及索引

特性InnoDBMyISAM事务✅ 支持❌ 不支持锁粒度🔒 行级锁 (默认,支持表锁)🔒 表级锁外键✅ 支持❌ 不支持崩溃恢复✅ 支持 (Redo Log)❌ 不支持 (易损坏需修复)MVCC✅ 支持❌ 不支持索引结构🌳聚簇索引:数据文件即主键索引叶子节点📂非聚簇索引:索引与数据文件分离COUNT(*)效率⏳ 需扫描表或二级索引 (无缓存)⚡ 变量存储精确行数 (非常快)全文索引✅ MySQL 5.6+ 支持✅ 支持 (老版本主力)压缩✅ 表压缩✅ 压缩表 (只读)存储文件.frm。

2025-08-16 10:08:40 1125

原创 java基础(八)springmvc以及mybatis

创建自定义Starter可以让你的工具组件被其他项目无缝集成项目特点推荐技术栈理由说明传统企业应用成熟稳定,团队熟悉度高微服务架构快速开发,内置微服务支持高性能API服务响应式编程,高并发处理复杂报表系统MyBatis + 存储过程SQL控制灵活,优化空间大。

2025-08-15 10:11:00 936

原创 java基础(七)spring

基础原理:IoC容器、AOP代理、生命周期管理设计思想:松耦合、关注点分离、约定优于配置实践模式:事务管理、安全控制、性能优化。

2025-08-14 11:45:24 1019

原创 java基础(六)jvm

通过NIO库(

2025-08-09 19:43:12 936

原创 java基础(五)多线程篇

可重入锁是指:同一个线程可以多次获取自己已经持有的锁,而不会被自己阻塞。你进了自己家大门(获取了锁),可以随意进出家里的各个房间(再次获取同一把锁),不需要出了大门再重新进。和都是可重入锁。内部维护一个计数器(hold count第一次获取锁,计数器=1。同一线程再次获取,计数器+1。释放锁时计数器-1。只有当计数器减到0时,锁才真正释放,其他线程才能获取。你已经完成了Java多线程的入门之旅。从基础概念到线程创建、状态管理、通信协作,再到线程安全、锁机制、线程池和JUC工具,我们一路打怪升级过来。

2025-08-07 15:00:27 1523

原创 java基础(四)map与set

String id;// ⚠️ 忘记重写 hashCode/equals 会导致:// map.get(new Employee("YA33")) 返回 null!// ✅ 正确姿势@Override// 只计算id@Override// 只比较id。

2025-08-06 12:10:06 719

原创 java基础(三)list集合

主要是list

2025-08-05 09:43:05 480

原创 java基础(二)jdk新特性

Java 8引入的Stream API是一种处理集合数据的全新方式。想象一下工厂的流水线:数据像产品一样在流水线上流动,经过各种操作(过滤、转换、排序)后被加工成最终结果。这就是Stream的核心思想!

2025-08-04 09:48:14 823

原创 Java基础(一)基础概念

【代码】Java基础(一)

2025-08-03 09:52:32 1616

原创 Java集合框架完全指南(四):Collections集合工具类的使用

✨口诀拷贝先扩容,转换要克隆线程手动锁,泛型保类型不可变用新版,混合类型是大坑方法适用集合类型典型场景reverse()List倒序显示数据shuffle()List随机抽奖、洗牌sort()List数据排序max()Collection找最大值/最长文本Collection统计词频多线程环境数据操作。

2025-08-02 10:51:35 1079

原创 Java集合框架完全指南(三):Map双列集合深度解析

就像字典里的"单词-释义"关系,每个键(key)对应唯一的值(value)JDK8+:数组+链表+红黑树(链表>8转红黑树)扩容阈值:容量×负载因子(16×0.75=12):红黑树保证所有操作时间复杂度为O(log n)JDK7:数组+链表(链表过长时性能下降)扩容规则:达到阈值后容量翻倍(16→32)不同hash值:直接跳过避免无效比较。LRU(最近最少使用)缓存实现。初始容量:16(空参构造时)负载因子:0.75(默认)找到对应数组位置(桶)相同hash值:继续用。双向链表:记录插入顺序。

2025-07-31 09:24:38 744

原创 Java集合框架完全指南(二):深入理解Set集合

String id;// 必须重写hashCode和equals!@Override@Override// 使用示例// 成功添加// 被识别为重复元素YA33提示:未重写时,默认比较对象地址!去重妙招:快速清洗重复数据// 一键去重对象去重:务必重写hashCode/equals@Override// 关键字段组合性能优化// 预分配空间(减少扩容)​// 负载因子调整(0.75为默认值)排序技巧:JDK8+推荐lambda表达式// 逆序。

2025-07-30 09:18:55 499

原创 Java集合框架完全指南(一):从小白到轻松掌握

想象一下你有一个只能装10个苹果的篮子(数组),但现在你需要装15个苹果怎么办?集合框架就是解决这类问题的神器!默认加在末尾,可在List中使用。当然还有普通fori遍历。

2025-07-29 09:30:04 1299

原创 LangChain4j(四) 函数调用实战指南:让大模型调用你的自定义方法

本文介绍如何在LangChain4j项目中实现函数调用功能,让大语言模型能够动态调用你的Java方法

2025-07-27 21:09:09 574

原创 Langchain4j(三)添加记忆+图片相关的功能

在处理特殊的事件的时候可以选择不同的模型,你可以将多个模型结合使用,形成一条链式结构在对照片进行处理的时候:1、先将其进行base64编码2、构建UserMessage消息,传入问题,图片的信息(base64,类型)3、调用ai模型获取请求4、返回的请求中.aimessage是模型返回的信息需要进行类型的转化可以将其与阿里云OSS结合将生成的图片上传到上面记忆:添加记忆时,需要添加id来确认用户是谁。

2025-07-21 00:00:00 658

原创 langchain4j框架(二)

pom.xml文件添加如下配置(一添加了版本管理)

2025-07-14 18:01:02 242

原创 langchain4j框架(一)

在学习完b站视频后的个人感悟,如有侵权,联系删除

2025-07-13 07:48:13 489

空空如也

空空如也

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

TA关注的人

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