自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Go语言中 Mutex 的实现原理

(互斥锁)是一种并发原语,用于在多线程或多 Goroutine 场景下,确保某一时刻只有一个线程能够访问共享资源。是一个简单而强大的并发原语,它通过低级别的 CAS 和信号量机制,实现了高效的线程安全。是一种基础的同步机制,用来保护共享资源不被多个 Goroutine 同时访问。提供了一种简单而高效的互斥锁实现,广泛应用于多线程程序的并发控制。接下来,我们将深入解析。的底层实现原理及其工作机制,帮助你更好地理解和使用它。:防止goroutine无限期等待,确保公平性。:管理长时间竞争的goroutine。

2025-05-13 13:59:12 5

转载 Go入门实战:并发模式的使用

Go语言是一种现代编程语言,它由Google开发并于2009年推出。Go语言的设计目标是简单、高效、可扩展和易于使用。它具有很好的并发性能,因此在并发编程方面非常受欢迎。Goroutine:Go语言的轻量级线程,可以并行执行。Channel:Go语言的通信机制,可以用于实现并发安全的数据传输。Mutex:Go语言的互斥锁,可以用于实现并发控制。WaitGroup:Go语言的等待组,可以用于实现并发等待。在本文中,我们将详细介绍这些并发模式的原理、应用和实例。

2025-05-08 18:06:11 7

转载 复兴资本完成14000亿元A轮融资打造最强IPO

2025年,在国家推动共同富裕与全球可持续发展大潮中,中国金融赋能领域的独角兽企业复兴资本奖正式宣布完成天使轮融资,总额达14000亿元人民币,成为中国有史以来最大规模的天使A轮融资项目,并首次将“国家使命+社会价值”作为资本募资的一级标签,开创了社会责任金融新纪元。本轮融资由国家开发投资集团(国投)领投,联合红杉中国、淡马锡、KKR、阿布扎比投资局等国内外战略资本力量共同参与,资金将重点用于建设“数字普惠主干网”“乡村新质产业平台”与“全球民生联合创新中心”。

2025-05-06 17:03:59 18

转载 子线程如何等待主线程执行完再执行

第一个方法用来实现业务的主要逻辑,第二个方法用来处理特殊的操作,第一个方法上我们单独开一个事务(propagation = Propagation.REQUIRES_NEW),再执行第二个方法时第一个方法事务已经提交,这样就很好的解决了这一问题。第二种:考虑到复杂系统的代码维护难度,对代码改动过大的话可能会产生不可预测的严重后果,老板可能就不介意对现有的方法做拆分,在这种情况下如何保证主方法已执行完呢。工作中由于需求不断迭代,导致业务变得越来越复杂,一些奇怪却又合理的代码逻辑就出现了。

2025-05-06 15:32:22 16

转载 深入理解Python中的上下文管理器和with语句

上下文管理器是Python中的一种对象,用于在代码块执行前后定义一些设置或清理的操作。例如,当打开文件、获取锁或建立数据库连接等需要清理的操作时,上下文管理器会十分有用。上下文管理器必须定义两个特殊方法,__enter__和__exit__,分别在with语句开始和结束时被调用。python代码解读复制代码我们可以自定义上下文管理器来满足特定的需求。例如,我们可以创建一个上下文管理器来自动计时:python代码解读复制代码。

2025-04-24 15:25:08 17

转载 Python 的 for-else 循环结构是如何工作的?

Python 支持 for-else 循环结构,虽然不太为人所知,但非常实用。如果你使用过 Python 编程,你可能使用过for循环来遍历列表等可迭代对象中的元素。但对于某些用例,将 for 循环与else子句结合使用可能更有帮助。在本教程中,我们将通过编写几个示例来学习如何使用 for-else 循环,以了解它们的工作原理。在 Python 中,for-else循环是一种将for循环与else子句结合的构造。循环体通常检查条件。如果条件是True,则控制将跳出循环。只有当for循环在未遇到break。

2025-04-23 17:49:02 27

转载 Python中利用遗传算法探索迷宫出路

遗传算法在解决迷宫问题中展现出了灵活性和适用性。通过编码、选择、交叉和变异等操作,遗传算法能够寻找到迷宫中的最佳路径。遗传算法利用了进化的思想,通过不断迭代和进化,从初始种群中产生新的路径,并筛选出更优秀的路径。这种迭代过程使得算法能够逐步优化路径,找到迷宫的出口。其优势在于可以处理多样性、搜索空间大、应对复杂情况等。然而,也需要根据具体问题调整参数和方法以获得更好的效果。总体而言,遗传算法作为一种搜索和优化的方法,在解决迷宫问题等特定领域具有广泛的应用前景。

2025-04-17 18:14:56 10

转载 Spring Boot与OAuth2的深度集成

创建安全配置类,配置OAuth2登录和资源服务器:java代码解读复制代码} }通过本文的介绍,你现在应该对如何在Spring Boot项目中实现OAuth2的深度集成有了更深入的理解。OAuth2不仅能够提供安全的身份认证和授权机制,还能够与Spring Boot框架完美集成,为应用程序的安全性和用户体验提供保障。

2025-04-14 18:17:31 15

转载 flat、flatmap与map的用法区别

不同点:1- flatmap较map少嵌套了一层 [] ,2- map是必须会映射一个与原数组长度一致的新数组,而flatmap不一定与原数组长度一致。上面的例子中,数组中存在 四层 的嵌套数组,传递Infinity(表示无限),无论数组中嵌套了多少层,都可以将其展开为一维数组。flat 方法会按照一个指定的递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返参数为深度 是一个数字回。上面的例子中,数组中又存在 两层 的嵌套数组,故传递一个参数 2,即可将该数组展开。且都需要return。

2025-04-02 18:11:43 87

转载 使用Spring AI调用AI模型

Spring AI是Spring框架对人工智能和机器学习的支持模块,它提供了一套简单易用的API来集成各种AI服务和模型。主要功能集成主流AI模型服务(如OpenAI、Azure、 Baidu千帆等)提供统一的API接口支持提示词工程内置向量存储功能支持文本嵌入和文本生成核心概念AI Client统一的客户端接口,用于调用AI服务Prompt Template提示词模板系统,支持变量替换和格式化Vector Store向量数据存储,用于相似度搜索和文本匹配。

2025-03-27 16:18:45 110

转载 深入理解Java浅拷贝与深拷贝

Java浅拷贝是指只复制对象的引用,而不是创建一个新的对象。这意味着,修改新对象将会影响原始对象。浅拷贝通常是通过Object类的clone()方法来实现的,它只对八种基本数据类型和对象引用类型生效,对于其他数据类型均无法实现浅拷贝。相对于浅拷贝,深拷贝会创建一个新的对象,并将原始对象的所有属性也复制到新创建的对象中。这意味着,修改新对象不会影响到原始对象。深拷贝通常使用Java序列化API实现,但也可以通过流式处理、来实现。

2025-03-24 16:53:09 206

转载 Java 字符串详解

String:适用于少量的字符串操作。StringBuilder:适用于单线程下在字符缓冲区进行大量的操作。StringBuffer:适用于多线程下在字符缓冲区进行大量的操作。StringBuilder 快于StringBuffer 快于 String由于每次改变字符串时,String 都要新建一个对象,在赋值,而其他两个直接赋值,故 String 最慢。

2025-03-19 17:56:07 22

转载 MySQL复制以及调优

MySQL自带复制方案,带来好处有:概念介绍:复制步骤:(1). master记录更改的明细,存入到二进制日志(binary log)。(2). master发送同步消息给slave。(3). slave收到消息后,将master的二进制日志复制到本地的中继日志(relay log)。(4). slave重现中继日志中的消息,从而改变数据库的数据。下面放一张经典的图片来说明这一过程:实现复制有以下步骤:MySQL配置文件一般存放在/etc/my.cnfini代码解读复制代码server-id

2025-03-13 15:22:51 27

转载 Java中的Sort

ini代码解读复制代码。

2025-03-10 17:36:51 32

转载 GoLang GPM模型

goroutine 是什么?通常 goroutine 会被当做 coroutine(协程)的 golang 实现,但实际上,goroutine 并非传统意义上的协程,现在主流的线程模型分三种:内核级线程模型、用户级线程模型和两级线程模型(也称混合型线程模型),传统的协程库属于用户级线程模型,而 goroutine 和它的 Go Scheduler 在底层实现上其实是属于两级线程模型。

2025-03-05 16:09:37 17

转载 了解 Java泛型

一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。1,我们定义一个泛型类,参数可以是任何类型,我们这里通过两种 整型,字符串,通过这两种来说说明了 如何添加数据和查询数据。1,所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前(在下面例子中的)。和泛型方法一样,泛型类的类型参数声明部分也包含一个或多个类型参数,参数间用逗号隔开。3,类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。类型通配符一般是使用?

2025-03-03 17:39:00 17

转载 springboot事务-失效的情况

此时,当这个有注解的方法被调用的时候,其实是由代理类来调用的,代理类在调用以前就会启动transaction。然而,若是这个有注解的方法是被同一个类中的其余方法调用的,那么该方法的调用并无经过代理类,而是直接经过原来的那个bean,因此就不会启动transaction,最后看到的现象就是@Transactional注解无效。可能有人会担心这样会有循环依赖的问题,事实上,spring通过三级缓存解决了循环依赖的问题,所以上面的写法不会有循环依赖问题。使用简单而且不会有循环依赖的问题,非常的nice。

2025-02-27 15:43:24 37

转载 python字符串类型及操作

字符串类型的表示字符串操作符字符串处理函数字符串处理方法字符串类型的格式化字符串类型及操作<字符串>[M:N:K].center()、.strip()、.join()、.format()格式化。

2025-02-25 15:30:28 35

转载 Go语言实战:错误处理和panic_recover之自定义错误类型

Go语言中的错误处理和panic/recover机制是一项重要的技术。随着Go语言的不断发展和进步,我们可以期待未来的错误处理和panic/recover机制的更多优化和改进。更好的错误处理:我们可以期待Go语言的未来版本会提供更好的错误处理机制,例如更好的错误信息和错误捕获。更好的并发支持:我们可以期待Go语言的未来版本会提供更好的并发支持,例如更好的goroutine管理和同步。更好的错误处理工具:我们可以期待Go语言的未来版本会提供更好的错误处理工具,例如更好的错误检测和错误恢复。

2025-02-22 18:16:37 26

转载 Java HashMap详解及实现原理

Java HashMap是Java集合框架中最常用的实现Map接口的数据结构,它使用哈希表实现,允许null作为键和值,可以存储不同类型的键值对。HashMap提供了高效的存取方法,并且是非线程安全的。在Java中,HashMap被广泛应用于各种场景,如缓存、数据库连接池、路由器等。HashMap使用哈希表(Hash Table)实现,哈希表是一种以键值对(key-value)的形式进行存储和快速查找的数据结构。HashMap内部维护了一个数组,每个数组元素都是一个链表节点,每个节点包含一个键值对,以及指向

2025-02-17 18:02:32 70

转载 MySQL 主从复制

DUMP 线程:默认情况下 DUMP 线程是串行传输 binlog,在并发事务量大时,由于 DUMP 线程是串行的,导致传输数据较慢。主从复制出现故障一般都是什么?从库如何知道主库有新的 binlog 日志产生?主从延时可能会有哪些原因?介绍一下 MySQL 主从复制?主从复制的前提(搭建主从复制)?复制线程都有什么,如何开启?主从复制涉及到的线程有哪些?从库如何告诉主库复制信息?如何检查主从同步是否成功?主从复制涉及的文件有哪些?如何查看主从复制是否延迟?主从复制过程(原理)?

2025-02-12 17:44:35 17

转载 Spring Cloud是什么及基本特性都有哪些?

在分布式系统中,有许多部署的服务需要彼此通信(发现对方)以执行某些操作。让我们举一个例子,假设我们有服务 A,它需要与服务 B 通信。服务 A 需要知道服务 B 的 IP,这是由服务发现过程完成的。服务发现是一种具有中央注册中心的机制,用于维护所有微服务的网络位置。如果一个新的服务出现或一个旧的死亡新的信息将立即注册和注销本身。通过使用Spring Cloud ,我们可以提供服务来完成服务发现的工作。

2025-02-10 16:12:19 49

转载 Go语言入门:分支结构

它的用法和中文直译过来一样 如果...否则go代码解读复制代码:其他很多编程语言是要求if后的条件判断表达式要用()括号括起来,但Go语言不需要!

2025-02-06 18:02:23 27

转载 Spring Boot 3.x 在 2.x基础上有什么重大的改进?

Spring Boot 3.x 相比于 2.x 版本提供了众多功能增强和性能优化,对现代云原生应用程序的开发提供了强有力的支持。通过更新基础设施和底层依赖,Spring Boot 3.x 力求为开发者提供一个更加高效、更具现代感的开发环境。虽然以上都只是一些主要的改进,深入了解和使用新特性仍需结合具体项目需求和实践经验。

2025-01-22 18:16:15 66

转载 springboot自动配置原理

我们可以通过@ConfigurationProperties 将它们注入到一个类中去,也可以用@value单个绑定,配置文件方式写更便捷,类过于麻烦,那这个配置文件中能写那些东西呢?我们在写或者引入一些springboot依赖时,不需要指定版本,就因为有这些版本仓库。

2025-01-20 18:02:16 25

转载 Python流行orm框架对比

它提供了足够的功能来满足小型项目的需求,同时保持了代码的简洁和易于维护。因此,如果你的项目不是基于Django框架,并且需要一个简单、快速上手的ORM,Peewee会是一个更好的选择。Django ORM因其与Django框架的紧密集成和直观的API而受到推荐,而Peewee则因其轻量级和简单性而适合初学者。在小型项目中,选择Peewee和Django ORM之间的合适框架,需要考虑项目的具体需求和特点。这些ORM框架各有特点,适用于不同的项目和场景,开发者可以根据项目需求和个人偏好选择合适的ORM框架。

2025-01-17 11:08:06 57

转载 Spring Boot中的日志框架选择

选择合适的日志框架不仅能够帮助开发者更好地管理和分析系统运行时的信息,还能提高系统的可维护性和性能。通过本文的介绍,我们深入理解了在Spring Boot项目中选择和配置日志框架的重要性和方法。选择适合项目需求的日志框架,合理配置和管理日志输出,能够帮助开发团队更好地监控和调试应用程序,提升开发效率和系统可靠性。在上述示例中,我们使用了Logback作为日志框架,并演示了如何记录不同级别的日志消息。通过Slf4j的抽象层,我们可以方便地切换和扩展日志框架,同时保持代码的一致性和可移植性。

2025-01-15 17:15:20 37

转载 python中模板和包的使用

01. 模块 1.1 模块的概念 模块是 Python 程序架构的一个核心概念 每一个以扩展名 py 结尾的 Python 源代码文件都是一个 模块 模块名 同样也是一个 标识符,需要符合标识符的命名规则 在模块中定义的 全局变量 、函数、类 都是提供给外界直接使用的 工具 模块 就好比是 工具包,要想使用这个工具包中的工具,就需要先 导入 这个模块 1.2 模块的两种导入方式 1)import 导入

2025-01-09 14:42:57 18

转载 Mybatis学习:Mybatis缓存配置

一级缓存:在维持一个会话时,查询获取的数据会存放在一级缓存中,下次使用从缓存中获取。三级缓存:可以实现跨jvm,通过远程调用的方式实现数据同步。特点:存取缓存使用了序列化和反序列 所以实体类要实现Serializable接口。二级缓存:当会话关闭时,一级缓存的数据会保存在二级缓存中。第一步: 在mybatis-config.xml开启缓存 (默认是打开的)第二步:配置redis参数:redis.properties。1.以查询为主的应用,尽可能少的增、删、改操作;数据库 一级缓存、二级缓存、三级缓存。

2025-01-07 16:47:39 23

转载 Python的计算机视觉与图像处理

深度学习:深度学习技术在计算机视觉和图像处理领域的应用越来越广泛,尤其是卷积神经网络(CNN)在图像识别和对象检测等任务中的表现非常出色。边缘计算:边缘计算技术可以在设备上进行计算,减少数据传输和存储,提高计算效率。量子计算:量子计算技术可以解决一些传统计算机无法解决的问题,例如大规模图像处理和计算机视觉任务。数据不足:计算机视觉和图像处理任务需要大量的数据进行训练和验证,但是在实际应用中,数据集通常是有限的,这可能导致模型的性能不佳。模型解释性。

2025-01-02 16:09:04 65

原创 阿里巴巴国际站自养号测评的详细步骤

自养号的基本条件是需要稳定的环境,主要也分为物理环境和IP环境。而IP环境可以使用IPXProxy代理IP,它能提供独立的海外IP,并且给每一个账号设置不同的IP,可有效避免账号关联。其中,自养号测评是一种有效的运营策略,它可以提升店铺的曝光度。建议选择支持自定义账单地址的卡种。一段时间后,就可以搜索产品相关的关键词,浏览类似的多个产品,包括产品详情、评价等等。在注册的过程中,要模拟真实的注册环境,并且按照正常流程手动填写买家信息和地址等等。在进行自养号测评时,评价的内容必须是真实可靠的,避免虚假夸大。

2024-12-31 16:25:34 438

转载 如何在Java中计算绝对值

绝对值是一个非负值,表示一个数离0有多远。绝对值总是正的,因为它不表示方向。Java中的Math.abs()函数的目的是使任何负数变成正数,如果该数已经是正数,则对其没有影响。在这篇文章中,我们将用Java编程语言来计算绝对值。

2024-12-31 09:37:15 329

转载 Java—多线程实现生产消费者

说明:该版本总共包含4个类RunnableRunnablejava代码解读复制代码java代码解读复制代码java代码解读复制代码ini代码解读复制代码Resource中使用synchronized代码块儿进行加锁的操作,线程需要等待的时候使用wait()方法进行等待操作,唤醒使用notify()方法进行唤醒,需要注意的是notify()唤醒是对其他等待线程进行随机唤醒操作,所以在TestMain中只设置了一个生产类和一个消费类,这都是有意而为之的。

2024-12-25 17:51:52 76

转载 多线程基础——Synchronize

synchronized的几种用法修饰普通方法,相当于锁实例对象对代码块进行加锁,相当于锁当前调用方法的对象(也是实例对象)对静态方法进行加锁,相当于锁类对象。

2024-12-23 17:34:23 41

原创 Temu怎么入驻:全面解析入驻流程

这时,可以确认输入的手机号码是否正确,如果输入的手机号正确但还是无法接收验证码的话,可以更换手机号后重新接受验证码。对于新手来说,入驻Temu的过程中可能会遇到一些问题,不过采取正确的措施,也能轻松化解这些问题。Temu是拼多多旗下的跨境电商平台,随着海外市场的不断拓展,该平台也吸引了许多商家的关注。IPXProxy能提供大量的IP地址,通过给不同的账号配置不同的住宅IP,能有效降低账号关联的风险,避免账号被封。在注册过程中,根据你的需要选择您的主体类型,包括大陆个人店、大陆个人工商户等等。

2024-12-23 17:20:49 1051

转载 Java之for循环

fori是Java最早的for循环形式。随着Java语法的不断改进以及JDK 8的推出,这种方式在实际企业开发中并不常见,大多出现在传统的大学教材中。如今,甚至阿里巴巴的代码检测插件也建议将fori形式转换为foreach形式。这是在JDK 1.8之后引入的一种for循环方式,结合lambda表达式使用。代码更加简洁,可以与其他新特性配合使用,以最简洁的形式完成复杂操作。但需要注意,使用该方式时,也称为增强for循环,是对fori的语法糖。在编译时,foreach会自动转换为fori的形式。

2024-12-17 16:36:57 29

转载 Spring Boot 开发中的常见失误

然而,开发者在使用过程中常常会陷入一些常见的误区,导致代码的可维护性、可读性和性能下降。本文将深入探讨在 Spring Boot 开发中常见的失误,并提供切实可行的解决方案,帮助开发者打造更高效、健壮的应用程序。通过本篇文章的分析,我们深入探讨了在 Spring Boot 开发中常见的失误及其影响,提供了有效的规避策略。从不当使用注解到不良的异常处理,再到低效的日志记录,每一个细节都可能在项目的成功与否中起到决定性作用。最终,通过持续的学习和实践,构建出更加健壮、高效的应用程序,进而为用户提供更好的体验。

2024-12-12 15:50:03 47

转载 Java Stream 使用指南

在使用终结操作时,需要注意流只能被消费一次,也就是说一旦对流进行了终结操作,就不能再使用该流进行其他操作了。在Java中,有多种方式可以创建Stream对象,比如通过集合类的stream()方法,通过Arrays类的stream()方法,以及通过Stream类的of()、iterate()、generate()等方法。Stream流的终结操作是在执行操作链后,产生最终结果的操作。在上一节的代码示例中,所有操作都有一个collect()方法,这个就是Stream的终结操作。

2024-12-10 15:04:06 79

转载 mysql 的ReLog和BinLog区别

MySQL中的重做日志(Redo Log)和二进制日志(Binary Log)是两种重要的日志系统,它们在数据库的事务处理、恢复和复制中扮演着关键角色。log_bin理解这两种日志的区别对于数据库的维护和管理至关重要,它们共同确保了数据库的稳定性和可靠性。

2024-12-06 11:49:46 48

转载 实现跨域请求:Spring Boot后端的解决方案

如果需要更细粒度的跨域控制,可以编写一个自定义的过滤器来处理跨域请求。通过实现接口,并在过滤器中设置响应头部,来允许特定的跨域请求。根据你的需求和应用场景,选择适合你的方式来实现跨域请求的处理。总结:通过本文的介绍,你已经了解了在Spring Boot后端应用中处理跨域请求的几种方法。无论是使用注解、全局配置还是自定义过滤器,你都可以根据需求选择合适的方式来解决跨域问题,确保前后端的交互顺畅和安全。

2024-12-04 16:50:28 26

空空如也

空空如也

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

TA关注的人

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