自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Spring Cloud Alibaba Ai引入maven依赖报错Unresolved dependency: ‘org.springframework.ai:spring-ai-core

引入spring-cloud-alibaba-ai依赖找不到!原始的Spring AI并没有国内相关大模型的接入,对国内开发者不太友好。Spring Cloud Alibaba AI 目前基于Spring AI 0.8.1版本 API 完成通义系列大模型的接入。maven依赖引入找不到问题。

2024-11-29 17:47:29 524

原创 并查集(Union-Find)

并查集是一种高效的数据结构,用于处理集合的合并与查找操作,通过路径压缩和按秩合并优化可以使其操作近似于常数时间复杂度。它在解决图论、网络连通性以及其他需要频繁集合操作的问题中具有重要应用价值。

2024-10-18 02:00:17 475

原创 锁升级机制

Java中的锁升级机制旨在优化多线程环境下的性能。通过动态调整锁的粒度,JVM可以在不同的情况下选择最合适的同步策略。然而,锁升级并不是没有代价的,特别是在高并发场景下,频繁的锁升级可能会导致性能问题。因此,在设计和实现多线程应用时,需要仔细考虑锁的使用策略。

2024-10-14 23:36:19 825

原创 优先级队列

通过的构造函数中传入Comparator,可以自定义元素的优先级比较方式。优先队列是Java中一个非常有用的数据结构,适用于许多需要动态优先级管理的场景。它通过堆数据结构实现了高效的插入、删除和访问操作,特别适合处理需要频繁调整优先级的任务。通过自定义比较器,可以灵活地适应不同的优先级规则。

2024-10-07 21:36:58 648

原创 Docker

微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题。

2024-10-06 20:57:11 1340

原创 二分搜索算法

以上便是二分搜索算法模板的核心代码。二分搜索是一种简单而高效的查找算法,尤其适用于需要频繁查找的场景。其应用场景包括但不限于数值查找、字符串查找等,广泛用于计算机科学及相关领域中。理解二分搜索的原理和实现,不仅能够提升编程能力,还能为算法学习打下良好的基础。:二分搜索算法要求待搜索的数组必须是有序的。通常是升序排列,但也可以是降序排列。

2024-10-06 14:49:33 542

原创 回溯算法解决排列组合及子集问题

以上是力扣设计相关问题的题目。排列组合还是子集问题无非就是从序列numsnumsnumsnums以组合为例:1.如果输入,和为 7 的组合应该只有[7]2.如果输入,和为 7 的组合应该有两种[2,2,2,1]和[5,2]3.如果输入,和为 7 的组合应该有两种[2,2,3]和[7]上面用组合问题举的例子,但排列、组合、子集问题都可以有这三种基本形式,所以共有 9 种变化。除此之外,题目也可以再添加各种限制条件,比如让你求和为target且元素个数为k。

2024-10-03 18:00:18 879

原创 如何解决哈希冲突?

哈希表就是通过散列函数将键映射到定值,简单来说就是一个键对应一个值。而通过散列函数映射时将两个键映射到了同一个值,即这两个键将被哈希表映射到同一个位置,这种情况就被称为哈希冲突。

2024-09-23 09:17:47 3322

原创 设计模式--外观模式

外观模式是一种有效的结构型设计模式,通过提供一个简单的接口来隐藏复杂的子系统。它简化了客户端的使用,提高了系统的可维护性和可扩展性。尽管可能会导致某些功能被隐藏,但在大多数情况下,外观模式为系统的使用提供了便利和清晰的界面。

2024-09-20 21:23:30 869

原创 设计模式--责任链模式

责任链模式通过将请求沿链传递,提供了一种灵活且可扩展的请求处理机制。它解耦了请求的发送者和处理者,使得系统的设计更加灵活和可维护。尽管处理链的配置和性能可能成为挑战,但其在处理复杂请求和动态请求处理方面具有很大的优势。

2024-09-19 22:26:35 1191

原创 Leetcode-有效的数独

使用哈希表记录每一行、每一列和每一个小九宫格中,每个数字出现的次数。分别创建三个数组rows[i][index]、columns[j][index] 和 subboxes[⌊3i​⌋][⌊3j​⌋][index]表示数独的第 i 行第 j 列的单元格所在的行、列和小九宫格中,数字 index+1 出现的次数。解法二:使用int类型的32位做哈希,标识对应的数字从而判断1~9是否出现过。相信喜欢玩数独的朋友们肯定能猜出这道题的要求了哈哈。上面的解法虽然不差,但是还有更巧妙的方法,如下。

2024-08-30 01:46:42 751

原创 设计模式--享元模式

享元模式(Flyweight Pattern)是一种结构型设计模式,其主要目的是通过共享对象来有效地支持大量细粒度的对象,从而节省内存和提高性能。它特别适用于需要大量相似对象的情况,这些对象之间共享一些公共状态或数据。

2024-08-29 17:19:08 963

原创 工厂模式与策略模式的区别?

如果想具体了解工厂模式和策略模式,请移步上述博客~虽然工厂模式和策略模式是两种常见的设计模式,但是它们在设计目的和使用方式上有明显的区别。

2024-08-28 00:34:46 2128

原创 设计模式--工厂模式

提供一个创建一系列相关或相互依赖对象的接口,而无需指定具体类。它用于创建多个相关的对象,而不仅仅是单一对象。

2024-08-27 17:37:29 565

原创 设计模式--策略模式

策略模式(Strategy Pattern)是一种行为型设计模式,用于定义一系列算法,并将每一个算法封装起来,使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户。

2024-08-27 17:33:09 1164

原创 Leetcode-134.加油站

因为假设 i+1 能到达 j+1 ,而此时因为 i 最远能到 j,所以 i 能达到 i+1,又 i+1 能到达 j+1,所以 i 能达到 j+1 ,这与之前的 i 最远能到 j 的结论相冲突,所以 i 和 j 之间的节点都不能到达 j+1,就不用考虑他们之间的节点了,直接从 j+1开始考虑能不能环绕一周,省去了计算也省去了空间。首先想要环绕一周,那么最后剩余的油量一定要大于0,其次再找到途中到达时油量最紧缺的节点,即将其作为旅途最后一站,那么下一个节点便是出发的节点。因此,3 可为起始索引。

2024-08-23 11:19:09 899 2

原创 Java中的方法到底是值传递还是引用传递?

所以,如果是基础类型,那么在方法传递的时候复制的是(栈中)基础类型的引用和值,如果是引用类型复制的是(栈中)引用地址。”引用”也就是指向真实内容的地址值,在方法调用时,实参的地址通过方法调用被传递给相应的形参,在方法体内,形参和实参指向同样的内存地址(关于这个问题可以看看这篇关于引用拷贝的文章。在方法被调用时,实参通过形参把它的内容副本传入方法内部,此时形参接收到的内容是实参值的一个拷贝,因此在方法内对形参的任何操作,都仅仅是对这个副本的操作,不影响原始值的内容。),对形参的操作会影响的真实内容。

2024-08-22 15:31:05 774

原创 引用拷贝、浅拷贝、深拷贝

引用拷贝一般通过 = 赋值就可以实现。浅拷贝需要在拷贝的类上实现Cloneable接口并重写其clone()方法。深拷贝不仅需要在拷贝的类上实现Cloneable接口并重写其clone()方法,而且clone()方法需要对各个引用都拷贝一遍。若是深拷贝中的引用数量太多了,可以借助序列化来实现深拷贝。

2024-08-22 11:28:51 603

原创 CRM域三大概念模型

CRM全称是Customer(顾客)、Relationship(关系)和Management(管理部门),即顾客关系管理。从广义上讲CRM不是一套系统而是一种商业战略。涉及的范围是整个企业,战略目标是增加盈利和销售收入,提升客户满意度。

2024-08-21 23:18:45 1163

原创 Leetcode-169.多数元素

候选人就类似于站在土地上的人,count为0则土地上没人,下一个上来的人成为候选人,count不为0时候选人不变,若属统一联盟,则一起抢占,count+1,若出现敌我两方,则一命换一命,count-1。举一个形象的例子,有一块地,由敌方所有军队的联盟与我方一支军队抢夺且我方军队人数大于敌方所有军队联盟人数,最终谁站在土地上,其所属阵营便能抢占该土地,每次只能上一个人,若属统一联盟,则一起抢占,若出现敌我两方,则一命换一命,显然因为我方人数最多,最后抢夺到土地的一定是我方。,返回其中的多数元素。

2024-08-21 01:55:35 698

原创 设计模式--中介者模式

中介者模式通过定义了一个中介对象来封装了一系列对象之间的交互,降低了对象之间通信交互的复杂性与耦合度。主要适用于系统中多个类之间相互耦合,形成网状结构时的场景。MVC架构便是中介者模式典型的案例:控制器作为模型和视图的中介者。在日常生活中为了方便上下班,我们一般会考虑在所工作的公司附近租房住,而我们租房可以找房东直租,也可以找中介租房。假设有A和B两人需要租房,而找到房东租房,当A有时间看房时,单独找到房东看房,当B有时间看房时,又单独找到房东看房,这样看上去好像没有问题。

2024-08-16 18:00:42 2272

原创 MybatisPlus中模型类属性与数据库表中字段不一致

在我们进行后端开发的时候,我们一般在数据库中使用的是下划线命名法,而在Java代码中使用的是驼峰命名法,这就会导致与数据库交互的时候会出现字段不匹配等等的问题,接下来就介绍MybatisPlus中相关问题的解决办法。

2024-08-16 11:02:47 915

原创 设计模式--单例模式

单例模式(Singleton Pattern)属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。通常来说:new实例化会创建一个对象,new多个就会创建多个实例化对象。而有时候若是想不管new多少都只想创建一个实例化对象并使用,就可以使用单例模式创建对象。单例模式分为饿汉式和懒汉式。

2024-08-12 16:05:34 808

原创 构建工具:Ant、Maven、Gradle

一个Java程序经过编译、测试、打包的步骤,在这个构建的过程中可以手动使用java、javac、jar命令来进行构建。随着工程文件的增加,便在最初使用Make来构建,GNU Make构建工具主要用于C语言项目,但是GNU Make并不限于某种编程语言,也不限于编译代码的场景。构建工具是一个把源代码生成可执行应用程序的过程自动化的程序(例如Android app生成apk)。构建包括编译、连接跟把代码打包成可用的或可执行的形式。但是,在C语言中有许多约定并不适合Java的生态,进而逐渐出现了。

2024-07-26 16:08:29 1205

原创 设计模式简介

设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。设计模式是软件工程中的一种通用解决方案,旨在解决在特定情境下常见的设计问题。它们不是具体的代码实现,而是一些解决问题的思路和方案,可以在不同的程序设计中重复使用。设计模式能够帮助提高代码的重用性、可维护性和可扩展性。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。常见的设计模式主要分为三类:创建型模式,结构型模式,行为型模式。此外,还有J2EE模式。这些模式关注于对象的创建过程。

2024-07-19 17:46:15 851

空空如也

空空如也

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

TA关注的人

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