自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码大赏之优雅使用 Docker

【代码】代码大赏之优雅使用 Docker。

2024-05-23 09:48:27 192

原创 今日代码大赏之JavaScript 运算符

1. 算术运算符:执行基本的数学运算,如 +、-、*、/ 和 %。2. 赋值运算符:用于给变量赋值,如 =、+=、-=、*= 等。3. 比较运算符:比较两个值,并返回布尔值(true 或 false),如 、=、!=、!==、>、= 和

2024-05-23 09:41:31 392

原创 Dubbo最全详解(图文全面总结)

典型如 Dubbo、Spring Cloud、gRPC 等,有着异构微服务体系互通的诉求,Dubbo3 借助于新的服务发现模型以及可灵活扩展的 RPC 协议,可以成为 Dubbo3 未来的发展目标。5、Invoker通过路由,负载均衡选择了一个最合适的服务提供者,在通过加入各种过滤器,协议层包装生成一个新的DubboInvoker对象;8、这个Invoker对象会调用本地服务,获得结果再通过层层回调返回到服务消费者,服务消费者拿到结果后,再解析获得最终结果。

2024-05-21 17:22:44 1009

原创 Node 之父新作:一个全新的 NPM 下载源工具!

所以 Node 之父出手了!JSR代表的不仅仅是一个新的下载源工具,它是我们思考和实践JavaScript与TypeScript分发方式的一个根本转变。更多信息可以到 JSR 官网了解~

2024-05-21 16:36:07 411

原创 【消息队列】 一文搞懂 Kafka

消息队列是实现应用程序和应用程序之间通信的中间件产品。

2024-05-21 16:26:38 191

原创 同步/ 异步 / 阻塞 / 非阻塞?真把我搞晕了

1)定义:阻塞I/O是指程序发起一个I/O操作后,如果数据尚未准备好(如数据未到达、文件未找到等),程序会一直等待,直到数据准备好并完成I/O操作。1)定义:非阻塞I/O是指程序发起一个I/O操作后,如果数据尚未准备好,I/O操作会立即返回一个错误或特定值,而不是等待数据准备好。2)特点:异步I/O不会阻塞程序的执行,允许程序在I/O操作进行的同时执行其他任务,提高了程序的并发性和效率。1)定义:同步I/O是指程序发起一个I/O操作后,必须等待该操作完成并获取到结果后,才能继续执行后续代码。

2024-05-21 10:46:17 1150

原创 人才分类--数智时代下的“AI 人才粮仓模型”

当前,AI 技术正在向各个领域渗透,加速产业深度融合,AI 已在各行各业崭露头角。在众多 产业的推动下,2024 年成为大模型应用场景元年。当前,模型层产品百花齐放,并逐渐开始 产品探索。目前国内超 63% 的企业正在构建企业大模型,将大模型与业务流程、产品功能紧密结合,推动其在多个场景中的应用、垂直化发展和产业化落地。

2024-05-20 14:57:16 226

原创 解决java.lang.IllegalArgumentException异常的正确方法

java.lang.IllegalArgumentException 是 Java 中的一个异常类,表示方法中传递的参数不合法。这个异常通常在方法被调用时抛出,表明方法的参数出现了问题。要正确解决这个异常,你可以按照以下步骤进行:

2024-05-11 11:17:55 838 1

原创 EureKa详细讲解通俗易懂

EureKa 就像是这个派对上的指南,它知道每个人的技能,也知道他们在派对上的位置。这样,当你需要找到一个能做饭的人时,你只需要问指南,它就会告诉你谁能够帮助你,以及他们在哪里。但是,在一个大型派对上,有时候可能会发生一些意外,比如有人突然离开了派对,或者网络连接出现了问题。在这个派对上有很多其他人,每个人都有自己的技能,比如唱歌、跳舞或者做饭。总的来说,EureKa 是一个功能强大的服务发现框架,它为构建基于微服务架构的分布式系统提供了重要的支持,能够提高系统的可伸缩性、可用性和灵活性。

2024-05-11 09:53:28 247

原创 java实现一个简单的线程池并详细讲解

● 在构造方法中,初始化了指定数量的工作线程,并启动它们,使它们可以不断地从任务队列中取出任务执行。:任务队列,使用LinkedBlockingQueue实现,用于存放待执行的任务。:线程池的主要类,包含了线程池的初始化和任务执行方法。:用于向线程池提交任务,将任务加入到任务队列中。:工作线程类,负责从任务队列中取出任务并执行。

2024-05-07 17:08:57 406

原创 二进制求和

当我们要对两个二进制数进行求和时,可以模仿十进制数相加的方法,从最低位开始逐位相加,并且考虑进位的情况。在二进制数中,每一位的可能取值只有0或1,所以我们可以用异或运算(^)来得到对应位的和,用与运算(&)再左移一位来得到进位。然后将这两个结果再相加,直到没有进位为止。

2024-05-07 16:54:09 415 1

原创 通过Redis实现一个异步请求-响应程序

● 订阅者处理完请求后,可以选择将响应信息发送到另一个频道,供生产者或其他订阅者获取。● 消费者处理完请求后,可以选择将响应信息写入另一个队列,供生产者或其他消费者获取。:发送请求消息,并验证消费者能够正确接收并处理请求,并且能够发送响应消息。:定义好请求和响应的消息格式,确保生产者和消费者之间能够正确解析消息。订阅者(Subscriber):监听指定的频道,接收请求并进行处理。消费者(Consumer):从队列中获取请求信息,并进行相应的处理。● 消费者从队列中获取请求信息,并进行处理。

2024-04-24 17:27:15 384

原创 报错:JSON parse error: Unexpected character (‘ ‘ (code 160)): was expecting double-quote to start fiel

检查你的 JSON 数据,特别是字符串值中是否包含非打印字符或特殊字符。通过检查以上可能的原因,并根据具体情况进行相应的调整,你应该能够解决这个 JSON 解析错误。如果问题仍然存在,你可以提供更多的上下文信息,以便我能够提供更准确的帮助。:如果 JSON 数据是从文件中读取的,请确保文件的编码格式与你的解析器期望的编码格式一致。有时候,文件的编码格式可能与解析器的默认设置不匹配,导致解析错误。:检查 JSON 数据的字符编码是否正确。确保 JSON 数据使用的是与解析器相匹配的字符编码格式。

2024-04-23 16:16:21 467

原创 idea配置推荐插件详细讲解

Lombok:简化Java代码,通过注解实现getter、setter、构造函数等。Spring Assistant:提供Spring框架的辅助功能,如自动补全、代码导航等。Git Integration:集成Git版本控制,方便代码管理和提交。CodeGlance:在编辑器侧边栏显示代码缩略图,方便快速定位代码位置。Maven Helper:辅助管理Maven项目,提供依赖分析、依赖冲突解决等功能。Key Promoter X:提醒你使用快捷键的插件,帮助你逐步熟悉IDEA的快捷键。Rainb

2024-04-23 14:43:13 432

原创 spring读取配置文件多种方式深入详解

在Spring Boot应用程序中,可以利用自动配置的特性来简化读取配置文件的过程。Spring Boot会自动读取application.properties或application.yml等默认的配置文件,并将配置属性注入到应用程序中。在应用程序中,可以直接使用@Value注解注入配置属性值,或者通过@ConfigurationProperties注解将配置属性绑定到POJO类中。在这个示例中,@PropertySource注解指定了属性文件的位置,@Value注解用于注入属性值到对应的字段中。

2024-04-22 15:31:31 645

原创 jvm调优 详细讲解

• JVM调优的原理是通过合理配置JVM参数和选择合适的垃圾回收器,以优化内存使用和垃圾回收效率,提高应用程序的性能和稳定性。• 调优过程需要结合应用程序的实际情况和性能指标,进行反复测试和调整,以达到最优的性能效果。

2024-04-22 10:58:28 403

原创 微服务中Dubbo通俗易懂讲解及代码实现

代码实现:在这个示例中,我们假设有一个简单的服务提供者和一个服务消费者,它们通过Dubbo进行通信。

2024-04-16 17:11:57 626

原创 使用 Java 语言实现一个冒泡排序

冒泡排序的基本思想是通过相邻元素之间的比较和交换,将较大的元素逐步“冒泡”到数组的末尾。这个过程重复进行,直到整个数组有序。

2024-04-16 17:02:58 185

原创 NLP和LLMs: 理解它们之间的区别

自然语言处理(NLP)是人工智能领域的一个子领域,专注于研究和开发使计算机能够理解、处理、生成自然语言文本的技术和方法。

2024-04-16 16:58:38 811

原创 一文详解MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM及其关系

它与 MES、WMS、SCM 等系统集成,以获取生产现场的实时数据、库存信息和供应链状态,实现企业资源的有效规划和管理。:MES 直接与生产线操作相关,它桥接了 ERP 系统和生产过程,提供车间层面的实时数据给 ERP 系统,同时从 SCADA 系统收集设备和过程数据,以优化生产执行。它与 ERP 系统集成,以确保财务和订单管理的一致性;:QMS 确保产品和服务满足质量标准和客户要求,与 ERP 集成可提升质量数据的财务和运营管理,与 PLM 集成则支持产品开发和生命周期管理的质量控制。

2024-04-15 17:24:10 1321 1

原创 Storm详细配置

● 定义你的拓扑结构,包括哪些Spout和Bolt将被使用,它们之间的连接关系,以及拓扑如何处理数据流。● 根据拓扑的需求调整集群的资源分配,以确保拓扑能够得到充分利用并且不会出现资源不足的情况。● 设置每个组件的并行度,以及任务的数量。● 考虑如何处理Spout的错误和故障情况,例如重试机制和错误处理策略。● 配置拓扑的可靠性特性,例如在出现故障时如何保证数据的完整性和一致性。● 考虑如何处理Bolt的错误和故障情况,例如失败重试和错误处理。● 设置Bolt的并行度以及任务数量,以优化拓扑的性能。

2024-04-15 17:12:05 390

原创 node.js 常用命令大全

● 使用:nvm install version安装指定版本的Node.js,nvm use 切换到指定版本的Node.js。:Node.js的进程管理工具,用于管理Node.js应用程序的启动、停止、监控等操作。:Node.js的热重载工具,用于监视文件的更改并自动重启Node.js应用程序。:Node.js的包管理工具,用于安装、卸载、更新和管理Node.js模块。● npm install package:安装指定的Node.js模块。:Node.js的调试器,用于调试Node.js应用程序。

2024-04-11 17:37:25 446

原创 redis缓存实现分布式锁原理及注意事项(附代码)

示例代码(Python):示例代码(JAVA):

2024-04-11 17:16:01 451

原创 网络协议学习——IP协议

TCP负责在传输层提供可靠的、面向连接的数据传输服务,而UDP提供了无连接的、不可靠的数据传输服务。● 不可靠性:IP协议是不可靠的,它不提供数据包传输的可靠性保证。IP协议是在网络层(第三层)上工作的协议,它的主要作用是在不可靠的网络中进行数据包的传输。● 最佳努力交付:IP协议采用了最佳努力交付的策略,即尽最大的努力将数据包传输到目标主机,但不能保证数据包的传输一定成功,也不能保证数据包的传输顺序。● 无连接性:IP协议是无连接的,每个数据包都是独立传输的,路由器不会维护任何关于连接状态的信息。

2024-04-10 14:35:04 568

原创 Docker 的基本概念和优势,以及在应用程序开发中的实际应用

镜像(Image):镜像是Docker容器的模板,包含了运行应用程序所需的所有文件和依赖项。可以将镜像看作是一个只读模板,用于创建容器。容器(Container):容器是镜像的运行实例。它包含了应用程序、运行时环境以及相关设置,但是与宿主机是隔离的。每个容器都是独立、轻量级的,可以快速创建、启动和销毁。仓库(Repository):仓库是存储和共享Docker镜像的地方。它可以是公共的,如Docker Hub,也可以是私有的,如公司内部的仓库。跨平台性:Docker容器可以在任何支持Docker的平台上运行

2024-04-10 14:25:24 1063

原创 Elasticsearch的倒排索引是什么?

倒排列表存储了每个词项对应的文档列表,以及在每个文档中出现的位置信息(可选)。当用户查询包含特定词项的文档时,Elasticsearch可以直接在倒排索引中查找,而不必遍历整个文档集合。:倒排索引不仅可以用于搜索,还可以支持诸如词项的聚合(Aggregations)、词项的模糊匹配(Fuzzy Matching)、短语搜索(Phrase Searching)等功能。:倒排索引以文档为单位,对每个文档中的词项建立索引。● 创建一个索引请求,并指定索引名称、文档类型、文档ID以及文档内容。

2024-04-10 14:02:15 824

原创 Java中eq、ne、ge、gt、le、lt的含义

【代码】Java中eq、ne、ge、gt、le、lt的含义。

2024-04-09 16:21:13 667

原创 jvm中堆与栈的区别详细讲解

用途不同:堆用于存储对象,而栈用于存储方法调用和局部变量。大小不同:堆是一个大的内存池,栈是一个小的内存区域。分配方式不同:堆中的对象由JVM动态分配,栈上的内存空间由编译器静态分配。生命周期不同:堆中的对象生命周期不受代码块的控制,由垃圾回收器管理;栈中的变量生命周期与方法的调用生命周期相同。

2024-04-09 10:53:52 599

原创 for循环与forEach超详细讲解附代码

● forEach方法不支持在遍历过程中中止或跳过迭代,而for循环可以通过break或continue语句实现。● for循环可以在任何可迭代对象上使用,而forEach只能用于数组。● for循环更加灵活,可以在迭代过程中控制迭代的方式和条件。● forEach方法更加简洁,适用于简单的数组遍历操作。

2024-04-09 10:42:35 400

原创 IDEA连接SqlServer数据库详细讲解

###一、前期准备。1.确保已经安装了SqlServer数据库,并记住服务器名称、登录名和密码等信息。2. 在IDEA中安装适当的JDBC(Java Database Connectivity)驱动程序。你可以从Microsoft官方网站上下载最新版本。

2024-04-07 14:12:00 1322 2

原创 golang 和java区别详细讲解

Golang(又称为Go)和Java都是流行的编程语言,各自具有一些特点和优势。

2024-04-07 13:59:21 539

原创 idea项目mapper.xml中的SQL语句黄色下划线去除

一般在使用mybatis的时候需要写一大堆的mapper.xml以及SQL语句,每当写完SQL语句的时候总是有黄色下划线,看着很不舒服。

2024-03-15 16:26:47 1012

原创 com.baomidou.mybatisplus.core.exceptions.MybatisPlusException:

com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, please exclude the tableName or statementId.

2024-03-15 16:19:27 1221

原创 Spring Boot整合Redis实现订单超时处理

【代码】Spring Boot整合Redis实现订单超时处理。

2024-02-19 10:27:11 662

原创 C语言中大小写宁母的转化详细讲解

这两个函数都接受一个字符串参数 str,返回值是转换后的字符串。如果 str 中已经包含了大写或小写字母,则不进行转换,直接返回原字符串。这两个函数都接受一个字符参数 c,返回值是转换后的字符。如果 c 已经是大写字母或小写字母,则不进行转换,直接返回原值。这两个函数可以将一个字符串全部转换为大写或小写字母。这两个函数可以将一个字符转换为大写或小写字母。同样的,我们也可以使用 tolower() 函数将字符串转换为小写字母形式。同样的,我们也可以使用 strlwr() 函数将字符串转换为小写字母形式。

2024-01-30 14:02:35 520

原创 Java 数据结构篇 二叉树与红黑树详细讲解通俗易懂

红黑树是一种自平衡的二叉搜索树,它在普通的二叉搜索树的基础上增加了一些特性,以确保树的高度始终保持在一个较小的范围内,从而保证了搜索、插入和删除等操作的高效性。红黑树的特性• 每个节点要么是红色,要么是黑色。• 根节点是黑色的。• 每个叶子节点(NIL 节点)是黑色的。• 如果一个节点是红色的,则其子节点必须是黑色的(反之不一定成立)。• 对于每个节点,从该节点到其所有后代叶子节点的简单路径上,均包含相同数目的黑色节点。

2024-01-30 09:40:00 380

原创 RabbitMQ安装及使用讲解

创建一个队列 可以使用 RabbitMQ 的管理界面创建一个队列。在浏览器中输入以下地址,即可进入 RabbitMQ 的管理界面:默认的用户名和密码均为 guest。在管理界面中,选择 Queues 选项卡,然后点击 Add a new queue 按钮。填写队列名称(例如 myQueue),然后点击 Add queue 即可创建一个名为 myQueue 的队列。4. 发送消息到队列 使用 RabbitMQ 的 Java 客户端库,可以很容易地发送消息到队列中。下面是一个简单的示例代码:这个示例代

2024-01-29 11:38:22 471

原创 JAVA语法基础Demo练习

变量和数据类型:// 定义整型变量// 定义字符串变量// 定义布尔型变量// 定义双精度浮点型变量条件语句(if-else):int x = 10;System.out.println("x大于5");} else {System.out.println("x不大于5");循环(for循环):i

2024-01-29 11:25:13 429

原创 【Java-Util】Hutool工具类判断字符串、对象为空的使用

判断字符串是否为空Hutool提供了StrUtil类来处理字符串相关的操作,包括判断字符串是否为空。示例如下:// 判断字符串是否为空// 判断字符串是否为空或只包含空白字符// false// false判断对象是否为空Hutool提供了ObjectUtil类来处理对象相关的操作,包括判断对象是否为空。示例如下:// 判断对象是否为null// 判断对象是否为空,包括判断集合、数组、Map等是否为空// true// true。

2024-01-25 14:00:03 984

原创 LambdaQueryWrapper用法超详细讲解

引入依赖在pom.xml文件中引入MyBatis-Plus的依赖:创建LambdaQueryWrapper对象创建LambdaQueryWrapper对象时,需要指定实体类的Class类型,如:构建查询条件LambdaQueryWrapper有多种构建查询条件的方法,常用的有以下几种:(1)eq方法:等于查询wrapper.eq(User::getName, "张三");等价于SQL语句:SELECT * FROM user WHERE name = '张三';

2024-01-25 13:55:24 10700

空空如也

空空如也

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

TA关注的人

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