- 博客(48)
- 收藏
- 关注
原创 Rabbit MQ的消息模式-Java原生代码
本文介绍了RabbitMQ的5种主要消息模式:1)简单模式(1:1直连),适用于即时任务;2)工作模式(1:N并行),支持轮询分发;3)发布订阅模式(fanout交换机),实现消息广播;4)路由模式(direct交换机),支持精确路由;5)主题模式(topic交换机),支持通配符匹配。每种模式都包含核心逻辑、关键特性、应用场景和Java代码示例,展示了从生产者到消费者的完整实现流程。文章还简要提及了headers头模式和RPC模式,帮助开发者根据业务需求选择合适的消息传递方式。
2025-07-30 16:56:23
1016
原创 RabbitMQ概念与管理端配置说明
本文详细介绍了RabbitMQ消息中间件的核心概念、组件及配置方法。RabbitMQ基于AMQP协议,采用Erlang编写,具有高可靠性、灵活性和可扩展性。文章解析了其核心组件:Producer、Consumer、Broker、Connection、Channel、Vhost、Exchange、Binding和Queue的功能与交互关系。重点说明了通过管理界面和命令行两种方式配置各组件的方法,包括创建连接、通道、虚拟主机、交换机和队列等操作,并详细解释了相关参数配置选项。最后还介绍了Binding的配置步骤
2025-07-28 15:19:34
1290
原创 Nacos安装单例模式
本文介绍了在Windows10环境下安装配置Nacos3.0.2的详细步骤。内容包括JDK版本要求、解压安装、可选MySQL数据库配置(含建表语句执行)、鉴权参数设置(密钥生成方法)、以及两种启动方式:修改startup.cmd为单例模式或通过命令行启动。重点说明了安全配置要求,包括必须修改默认密钥值等安全注意事项。最后提供了访问控制台的默认地址和初始账号信息(nacos/初始密码),并提示需要妥善保存首次登录密码。全文约150字,涵盖了Nacos安装配置的核心流程和关键注意事项。
2025-07-21 14:57:32
1188
原创 时序数据库InfluxDB
本文介绍了时序数据库的定义、特点及应用场景,重点分析了InfluxDB的核心功能,包括高性能写入、时间序列查询语言、数据保留策略等。通过对比时序数据库与关系型数据库在数据结构、写入频率、查询模式等方面的差异,阐明了时序数据库的优势。文章还提供了InfluxDB在Windows系统的安装指南,包括下载、启动及配置后台服务的具体步骤,并展示了初始化成功的界面。内容涵盖时序数据库的基本概念、典型应用和实际操作,适合需要处理时间序列数据的开发人员参考。
2025-07-10 17:53:35
1212
原创 windows安装RabbitMQ
本文介绍了RabbitMQ在Windows系统上的安装流程及常见问题解决方法。主要内容包括: 安装前的准备工作,需确认Erlang与RabbitMQ版本兼容性; Erlang和RabbitMQ的安装步骤及环境变量配置; 启用Web管理界面并访问; 解决常见问题:当两个.erlang.cookie文件内容不一致时,导致节点无法通信的问题,可通过统一文件内容解决。安装完成后需重启服务使配置生效。
2025-07-03 10:07:00
518
原创 maven详解
Maven是一个由Apache维护的Java项目自动化构建工具,其核心功能包括依赖管理、标准化构建流程和插件扩展。通过POM(Project Object Model)文件定义项目结构和配置,Maven提供三个独立生命周期(default/clean/site)管理构建过程,并支持本地/远程仓库管理依赖。它具有标准化项目结构、强大的依赖管理和插件系统等优势,但也存在学习曲线较陡的问题。常用命令包括mvn clean、compile、package等,支持多模块并行构建和依赖冲突分析。Maven通过继承和聚合
2025-07-03 09:49:07
1374
原创 Jackson:强大的Java JSON 处理库
Jackson是一个高效的Java JSON处理库,提供序列化/反序列化功能,支持复杂数据结构处理和多态映射。其核心包括流式API、树模型和数据绑定三种处理方式,具有模块化设计(如jackson-core、jackson-databind等)。通过注解和自定义序列化器可灵活控制数据转换,与SpringBoot深度集成,并支持泛型、线程安全优化等特性。典型应用场景包括REST API开发、配置文件解析等,性能优于Gson等替代方案。
2025-07-02 14:12:12
972
原创 Apifox将base64转换为图片(调试时方便查看)
摘要:本文介绍了在线接口测试中处理图像数据的操作步骤。主要包括:1)报文格式设置;2)在后置操作中添加自定义脚本,使用JavaScript代码将返回的base64图片数据渲染为HTML图像元素;3)发送接口请求后,通过可视化工具查看图像结果。该流程适用于需要展示接口返回图像数据的测试场景。
2025-06-14 10:26:45
322
原创 八.桥接模式
桥接模式是一种结构型设计模式,用于将抽象部分与实现部分解耦,使二者能够独立变化。该模式通过组合而非继承的方式连接两个独立维度:高层业务逻辑(抽象)和底层实现方式(实现)。以支付系统为例,支付渠道(如APP/网页)作为抽象部分,支付方式(如支付宝/微信)作为实现部分。抽象类持有实现接口的引用,通过注入不同的具体实现类来动态组合功能。这种设计使得新增支付渠道或方式时无需修改现有代码,提高了系统的扩展性和灵活性。
2025-06-14 10:16:56
487
原创 七.适配器模式
适配器模式是一种结构型设计模式,充当不兼容接口之间的桥梁。它通过适配器将类接口转换为客户期望的接口,使原本不兼容的类能够协同工作。文章以支付系统为例,展示了如何将第三方支付接口(接收货币类型和金额)适配为本地支付接口(仅接收金额)。适配器模式的优势包括:支持多实现提高灵活性、面向接口编程降低耦合度、遵循开放/关闭原则便于扩展。案例中通过PaymentAdapter适配器实现了新旧支付接口的兼容调用,最终输出支付处理结果。这种模式特别适用于复用现有代码但接口不匹配的场景。
2025-06-10 10:39:22
465
原创 六.原型模式
本文介绍了Java中实现原型模式的三种方式:1. 原生Cloneable接口实现浅拷贝(仅复制对象本身,引用字段共享内存);2. 序列化/反序列化实现深拷贝(完全独立的对象副本);3. 使用Apache Commons的SerializationUtils简化深拷贝。通过代码案例对比展示了不同实现方式的运行效果,重点阐述了浅拷贝与深拷贝的核心区别:前者修改引用字段会影响原对象,后者则完全隔离。所有实现方式均要求类实现相应标记接口(Cloneable或Serializable)。
2025-06-09 17:55:39
654
原创 五.建造者模式
建造者模式是一种将复杂对象的构建与表示分离的设计模式,适用于构建过程多变、含多个可选参数的对象。其核心结构包含四角色:产品(最终对象)、抽象建造者(定义接口)、具体建造者(实现构建)、指挥者(控制流程)。以餐厅点餐系统为例,套餐(Product)由不同构建者(KidsMealBuilder/FamilyMealBuilder)按固定流程(主食→饮料→附加品)创建,Waiter(Director)控制构建顺序。该模式标准化了构建流程,同时支持产品多样化,客户端只需选择具体建造者即可获得不同配置的产品。
2025-06-09 15:16:42
552
原创 三.工厂方法模式
工厂方法模式是一种创建型设计模式,它将对象创建过程封装在子类中实现,通过抽象工厂接口定义创建方法,让子类决定实例化哪个产品类。该模式的核心结构包括:抽象产品(定义接口)、具体产品(实现接口)、抽象工厂(声明工厂方法)和具体工厂(实现创建逻辑)。文中以支付系统为例,展示了微信和支付宝两种支付方式的实现,通过工厂方法实现支付渠道的解耦与扩展。典型应用场景包括多协议连接器、支付系统、日志系统和数据库访问等需要灵活创建对象的场景。该模式遵循开闭原则,提升了系统的可扩展性和可维护性。
2025-06-08 15:49:43
375
原创 一.设计模式的基本概念
关系类型生命周期依赖典型模式应用案例说明组合关系强绑定:部分对象不能独立于整体存在(整体销毁则部分销毁)组合模式:文件夹(整体)删除时,其内部文件(部分)同步销毁汽车引擎脱离汽车即失去功能意义聚合关系弱绑定:部分对象可独立于整体存在装饰器模式:移除咖啡的“牛奶装饰层”后,原始咖啡对象仍有效5享元模式:棋子对象池独立于棋局存在班级解散后,学生仍可作为独立个体存在依赖关系临时性:通过参数传递临时使用对象。
2025-06-07 15:35:38
896
原创 32、Java集合:Collection及其子接口和实现类
Collection 接口是 Java 集合框架中的根接口,是Set、Dueue、List的父接口。它定义了这三种接口()都具备的通用方法。
2025-01-25 16:52:53
936
原创 31、Java集合概述
集合是一组对象的集合,它封装了对象的存储和操作方式。集合框架提供了一组接口和类,用于存储、访问和操作这些对象集合。这些接口和类定义了不同的数据结构,如列表、集合、映射等,以支持各种类型的数据操作。简单来说,集合是对象的容器,它允许你将多个对象存储在一个单一的数据结构中,并对这些对象进行各种操作,如添加、删除、搜索等。Java集合框架的设计旨在提供一种统一的方式来处理不同类型的集合,从而简化代码的编写和理解。集合类位于java.util包下,都是Collection和Map派生而来的。
2025-01-25 16:51:43
1040
原创 30、Java中的异常(Exception)
自定义异常是开发者根据特定需求创建的异常类,它们通常继承自 Java 的 Exception 类或 RuntimeException 类。自定义异常使得异常处理更加灵活和具体,能够更好地描述程序中可能出现的错误情况。若定义受检查的异常(Checked Exception),则继承自 Exception 类;若定义运行时异常(Runtime Exception),则继承自 RuntimeException 类;自定义的异常类,通常需提供如下构造方法:try {
2025-01-23 10:12:12
1954
原创 29、Java中的日期与时间:Date、Calendar、DateFormat和SimpleDateFormat的应用
在Java编程中,处理日期和时间是一项常见且重要的任务。Java提供了多种方式来处理日期和时间,其中最常用的是Date、Calendar、DateFormat和SimpleDateFormat类。本文将深入解析这些类的功能和用法。
2025-01-23 10:11:12
1074
原创 28、掌握 Java 数学类:Math、Random、BigDecimal 、 NumberFormat和DecimalFormat
在 Java 编程中,处理数学运算、随机数生成、高精度计算以及数字格式化是常见的需求。MathRandomBigDecimal和。本文将详细解析这些类的功能和用法。
2025-01-22 09:42:10
1155
原创 27、Java中正则表达式的应用
Matcher 对象是通过 Pattern 对象创建的。可以把这个过程想象成根据图纸(Pattern)建造房子(Matcher)。多个 Matcher 对象可以共享同一个 Pattern 对象。这就像是多栋房子可以使用同一张图纸来建造,而不需要为每栋房子重新设计图纸。由于 Pattern 是预先编译好的,所以使用同一个 Pattern 创建多个 Matcher 对象可以提高效率,避免重复编译正则表达式。
2025-01-22 08:00:00
889
原创 26、正则表达式
正则表达式(Regular Expression,简称Regex)是一种用于字符串搜索和操作的强大工具,它使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。它是一套独立的规范,各类编程语言都会提供一些API,支持正则表达式。正则表达式由普通字符(例如,a-z、A-Z、0-9)和特殊字符(称为“元字符”)组成。
2025-01-21 11:08:29
1900
原创 25、Java中的字符串(String)
字符串(String)是一种非常重要的数据类型,用于表示文本信息。Java中的字符串是不可变的,这意味着一旦创建,字符串的内容就不能被改变。这种不可变性带来了许多好处,例如线程安全,但同时也意味着每次对字符串进行修改时都会创建一个新的字符串对象。由于字符串是不可变的,每次对字符串进行修改(如拼接、替换等)都会创建一个新的字符串对象。这可能会导致性能问题,特别是在处理大量字符串操作时。
2025-01-21 09:30:00
1146
原创 24、Java中的包装类
Java是面向对象语言,在Java中一切皆对象。但是也有例外,就是八种基本类型,为了解决这个问题,设计除了包装类。包装类是对应于基本数据类型(如int、float、char等)的类。它们将基本数据类型封装成对象,使得基本数据类型可以像对象一样使用。包装类是Java语言的一个重要特性。
2025-01-20 12:26:10
825
原创 23、Java中的Object类
该方法用于比较两个对象是否相等。默认情况下,它比较的是对象的内存地址。也就是说,只有当两个引用指向同一个对象时,才会返回true。该方法用于获取对象的哈希码。默认情况下,它返回对象的内存地址的整数表示形式。哈希码在散列表(如HashMap)等数据结构中非常重要。该方法用于返回对象的字符串表示形式。默认情况下,它返回对象的类名加上对象的哈希码的无符号十六进制表示形式。该方法用于创建并返回对象的一个副本。它是一个本地方法,实现是依赖于本地代码的。
2025-01-20 10:14:04
1008
原创 22、用户输入
Java提供了多种处理用户输入的方式,每种方式都有其适用场景和优缺点。在实际应用中,可以根据具体需求选择合适的输入方式。以下是对各种方式的简单说明。
2025-01-18 18:58:02
1224
原创 21、系统相关类(System&Runtime)
System类位于java.lang包中,是Java语言的核心类之一。这个类主要充当了Java程序与底层系统环境之间的桥梁,提供了对系统资源的访问接口,包括输入输出流、系统属性、时间获取、数组操作等多个方面,System类的设计理念是作为一个静态工具类存在,它不允许被实例化(构造方法私有化),只能通过类名直接调用其静态方法和访问静态变量。Runtime类位于java.lang包中,代表了Java应用程序的运行时环境,Runtime类符合单例模式,我们只能通过getRuntime()获得该类型唯一的实例。
2025-01-18 18:57:13
1008
原创 20、Java文档注释
Java文档注释是一种特殊的注释形式,它以/**开始,以*/结束,通常出现在类、方法、字段等的声明前面,用于生成代码文档。这种注释可以被(JDK手册就是这样形成的),如JavaDoc。文档注释允许你在程序中嵌入关于程序的信息,你可以使用javadoc工具软件来生成信息,并输出到HTML文件中。文档注释只负责描述类(class)、接口(interface)、方法(method)、构造器(constructor)、成员字段(field)。在生成API文档时会提取以public、protected修饰的内容。
2025-01-17 10:21:36
896
原创 19、Java API手册
Java API(Application Programming Interface,应用程序编程接口)手册是一份文档,它提供了Java编程语言中所有标准库类、接口和方法的详细信息。这份手册是Java开发者的重要资源,因为它包含了如何使用Java标准库中各种组件的指导和参考信息。Java API手册可以通过在线访问,也可以下载为离线文档。它是Java开发者学习和参考Java标准库的重要工具。随着Java版本的更新,API手册也会相应更新,以反映新添加的类、方法和特性。
2025-01-17 09:45:00
1846
原创 18、方法区与垃圾回收机制
当这份数据不再被任何变量引用时,它就成了垃圾,对应的内存区就等待垃圾回收器的回收。当虚拟机(JVM)装载某个类型时(第一次读到,比如: new Car() ),它使用类装载器定位相应的class文件,然后读入class文件,并将它传输到虚拟机中。的对象分配内存,并根据方法区中存储的类的元数据(字段信息)初始化对象,完成初始化对象后构造方法出栈。垃圾回收器会定期检查堆中的对象,回收那些不再被任何栈帧引用的对象,以释放内存空间。当数据永久的失去引用后,垃圾回收器会在合适的时候回收它的内存区。
2025-01-16 11:41:05
1239
原创 16、Java中的内部类
定义在其他内部的类就叫做内部类,而包含了内部类的类叫做外部类。内部类提供了一种新的封装方式,可以将内部类隐藏在某个外部类的内部。便于访问外部类中的成员,如成员内部类可以直接访问外部类的私有成员。内部类有多种类型,包括成员内部类(静态内部类和非静态内部类)、局部内部类和匿名内部类。下面详细说明这些内部类的特点和用法定义在外部类内部,与其他成员平级,它是一种新的成员,可以被任意的访问修饰符修饰,一共存在着四种访问级别,被static修饰的成员内部类叫静态内部类,否则叫非静态内部类。
2025-01-15 12:49:25
503
原创 15、抽象类与接口
修饰符] interface 接口名 extends 父接口1,父接口2,父接口3,......{}接口名的规范:接口名必须符合Java的标识符规范。通常,接口名采用大写字母开头的命名方式,以表明它们是接口,例如。接口的访问修饰符:接口可以有public修饰符,也可以省略。如果省略了public修饰符,那么该接口具有包访问级别,即只能在定义它的包内被访问。接口是一种规范,往往在很多地方用,所以一般都是public。接口的继承:一个接口可以继承自多个父接口,这允许接口组合多个来源的行为。
2025-01-15 10:27:13
1120
原创 14、final关键字详解
final关键字在Java中具有多种用途,下面我详细介绍它修饰类、方法、变量(包括静态变量、成员变量和局部变量)的实际意义,以及final变量的宏替换规则。
2025-01-09 11:55:31
1014
原创 13、初始化块和static关键字
初始化块是对构造方法的补充,用于处理与参数无关的固定的初始化逻辑。它是一种特殊的代码块,用于初始化类或对象的状态。初始化块分为两种:静态初始化块和实例初始化块。下面说明实例初始化块,静态初始化块与static关键字的说明放在一起。
2025-01-08 17:35:59
376
原创 12、包和访问修饰符
Java中的访问修饰符用于控制类、方法、构造函数和变量的访问权限。在公司域名倒写的包下面创建不同的包,写不同的模块。通常写的代码都放在公司域名倒写的目录下。用于定义类的私有成员,例如私有变量和私有方法,以隐藏类的内部实现细节,确保类的封装性。用于定义类的成员,使得子类可以继承并访问这些成员,同时允许同一个包中的其他类访问。包提供了类的多层命名空间,可以解决类的命名冲突,类文件管理的问题。用于定义类的成员,限制其访问范围仅限于同一个包内的其他类。类:通常用于定义公共类,使其可以被其他包中的类访问。
2025-01-08 10:59:41
306
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅