自定义博客皮肤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)
  • 收藏
  • 关注

原创 FluxApi - 使用Spring进行调用Flux接口

2. 辅助方法`pollFluxResult`负责轮询获取处理结果: - 设置最大重试次数(60次)和重试间隔(5秒) - 循环向轮询URL发送GET请求查询任务状态 - 当任务状态为"Ready"时,返回处理后的图片样本 - 当任务状态为"failed"时,抛出处理失败异常 - 超过最大重试次数仍未完成时,抛出超时异常 整体流程实现了一个异步API调用模式:先提交处理任务,然后通过轮询方式等待处理完成并获取结果,适用于处理时间不确定的图片处理场景。

2025-08-13 22:06:29 361

原创 JavaScript - 实现套索工具的demo

最近实习想要完成图生图的项目,想要套索工具来建立蒙版,下面是我的两个demo。包括自由套索工具和多边形套索工具。

2025-07-27 22:29:19 177

原创 JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过执行。这跟我们,当为单核处理器时。案例来自于Java并发编程的艺术。在执行的次数不同时,串行和并行所执行的时间之间的大小之比是不同的。当循环次数较少时,串行要比并行更快一些。减少上下文切换的方式有无锁并发编程、CAS算法、使用最少线程和使用协程。

2025-06-08 15:58:59 1885

原创 线程池-executor的使用

池化的意思可以理解为:事先准备好一些资源,有人要用的话,从这里拿,用完需要放回来。线程池的好处:1.降低资源的消耗2.提高响应的速度3.方便管理线程复用 可以控制最大并发数 管理线程线程池:三大方法 7大参数 4种拒绝策略三大方法七大参数corePoolSize maximumPoolSize Queue三者关系可以由下图进行解释。

2025-06-08 00:04:54 291

原创 Git的使用技巧

流程管理本地变更,通过分支隔离不同开发任务,结合 Gitee/GitHub 实现高效协作。# 推送本地主分支(master 或 main)到远程仓库(首次需加 `-u` 绑定分支),选择源分支(自己的分支)和目标分支(原仓库主分支),描述变更后提交,等待管理员审核合并。:生成一个新提交来撤销指定版本的变更,适合公共分支(避免强制回滚影响他人)。:用于追踪文件变更,支持多人协作开发,解决代码冲突,记录版本历史。),需手动修改文件,删除冲突标记,保留正确代码,然后重新提交。

2025-06-04 22:07:02 1745

原创 线程间和进程间是如何进行通信

线程A在执行时,把更新后的x值(假设值为1)临时存放在自己的本地内存A中。当线程A和线程B需要通信时,线程A首先会把自己本地内存中修改后的x值刷新到主内存中,此时主内存中的x值变为了1。随后,线程B到主内存中去读取线程A更新后的x值,此时线程B的本地内存的x值也变为了1。JMM通过控制主内存与每个线程的本地内存之间的交互,来为Java程序员提供内存可见性保证。进程是由线程组成的,进程所拥有的功能线程全部具有,线程所拥有的功能进程不一定有,所有线程的通信方式,进程不一定有。Java中线程的通信。

2025-06-02 14:42:55 345

原创 CSS实现过多的文本进行省略号显示

* 必须结合的属性 */text-overflow: ellipsis;/* 溢出部分显示为省略号 */display: -webkit-box;/* 必须结合的属性 */overflow: hidden;/* 溢出内容隐藏 *//* 必须设置宽度 *//* 溢出内容隐藏 *//* 必须设置宽度 */-webkit-line-clamp: 3;/* 显示的行数 */white-space: nowrap;/* 禁止换行 */

2025-05-19 23:03:11 425

原创 计算机底层的多级缓存以及缓存带来的数据覆盖问题

锁总线带来的消耗太大了。

2025-05-19 22:58:51 422

原创 B树如何用于磁盘 ,B+树为如何用于数据库

M阶B树:每个节点最多M个子节点,每个节点最多存M-1个Key-Value值,key以升序排序。我们知道了页的概念。B树用于磁盘的读取。Key是对文件进行编号,value是对应的页。先让我们介绍一下cpu 内存 磁盘的关系。B+树多用于数据库,进行数据的存储。那么value是干什么的呢。也是由这组数字进行构建。

2025-05-07 23:48:27 366

原创 哈夫曼树和哈夫曼编码

通过对数据中不同字符出现的频率进行统计,构造哈夫曼树,为每个字符分配一个唯一的二进制编码,频率高的字符编码短,频率低的字符编码长,从而实现数据的压缩。其中要克服的最大问题,莫过于就是一串由0或者1组成的编码,你无法区分哪些01组成的编码部分是属于哪些字符的,因此哈夫曼编码的出现解决了这个问题。从森林中选出根结点权值最小的两棵树作为左右子树构造一棵新的二叉树,新二叉树的根结点权值为其左右子树根结点权值之和。:在一棵树中,从一个结点到另一个结点所经过的分支序列称为路径,路径上的分支数目称为路径长度。

2025-05-04 21:48:00 962

原创 234树和红黑树

讲述了234树以及红黑树

2025-05-04 21:23:39 668

原创 二叉搜索树实现删除功能 Java

该代码定义了一个delete方法,其作用是从二叉搜索树里删除具有指定值的节点。若树为空或者指定值的节点不存在,会输出相应提示信息。删除节点时,会依据节点的子节点情况分三种情形处理:叶子节点、有两个子节点、仅有一个子节点。此delete方法能依据节点的不同情况正确删除二叉搜索树中的指定节点。不过,代码里调用的Search和min方法并未给出实现,在使用时需要确保这些方法已正确实现。

2025-05-04 21:00:24 545

原创 synchronized锁和ReentrantLock锁的区别

5.sync 默认可重入的,不可以中断,非公平。Lock ,可重入锁,非公平(可以设置)3.sync会自动释放锁,Lock必须要手动释放锁,不释放的话就会死锁。2.synchronized无法获取锁的状态,lock可以判断。4.sync:线程1(获取锁,阻塞),线程2(等待,傻傻的等)6.sync适合少量的代码同步,Lock适合锁大量的同步代码。1.synchronized是内置的关键字,Lock是关键类。Lock 不一定会一直等待下去(tryLock())synchronized和Lock的区别。

2025-05-03 21:54:17 227

原创 wait() 和sleep()的区别

sleep ->Thread 企业一般不会用。sleep()不会释放锁,会保持锁的状态。一般使用JUC中的TimeUnit。wait()只能在同步代码块中使用。sleep()在任何地方都可以休眠。wait不需要捕获异常。sleep必须捕获异常。wait()会释放锁。

2025-05-03 21:40:20 197

原创 Java中的并发和并行

cpu一核,模拟出的多条线程,天下武功唯快不破,通过很快的进行线程切换,呈现出一起执行的感觉。并发编程的本质 :充分利用cpu的资源。cpu多核,多个线程同时执行 线程池。以上代码观看当前有多少线程。

2025-05-03 21:35:45 167

原创 线程和进程在Java中的知识点

其实是不可以的,在Java中,开启线程是需要调用native方法,也就是本地方法的。的概念是指系统进行资源分配和调用的一个基本单位。通过Thread的源码可以发现。你知道在Java中默认有几个线程吗?进程是由多个线程组成的。Java可以开启线程吗?

2025-05-03 21:31:50 146

原创 类加载的过程

类的加载大致分为五步骤:根据类的全限定名,通过类的加载器在文件系统或者网络等资源寻找对应的字节码文件类加载器会在 Java 的核心类库中找到对应的字节码。查找到对应的字节码后,将找到的字节码文件读取到JVM中,通过是以字节数组的方式存储将类加载器中的字节码文件生成一个Java.lang.class,表示被加载的类,后续操作都对此对象进行。

2025-04-30 01:14:36 371

原创 两个队列实现栈

【代码】两个队列实现栈。

2025-04-27 23:14:08 173

原创 两个栈构建队列

【代码】两个栈构建队列。

2025-04-27 23:12:01 183

原创 进程调度的分类 -多种分法

优先级越高的队列,时间片越小。系统优先调度高优先级队列中的进程,当高优先级队列中没有进程时,才调度低优先级队列中的进程。在这个过程中,即使有更高优先级的进程进入就绪状态,当前运行的进程也不会被中断,不会将CPU资源让给其他进程。例如,在一个航空交通管制系统中,对于飞机的降落、起飞等关键任务,需要根据其时间要求和当前系统负载情况,通过LLF算法来合理安排调度顺序,以保证飞行安全和航班的正常运行。这是一种最简单的调度算法,实现容易,但对于长进程和短进程混合的情况,可能导致短进程等待时间过长,平均周转时间较长。

2025-04-25 00:40:07 681

原创 基数排序 -八大排序之一

总体来说,这段代码实现了一个基数排序算法,通过按位分配和收集的方式对整数数组进行排序。不过需要注意的是,代码中注释的“构建大顶堆”与实际实现的基数排序不符,存在注释不准确的问题。最后通过一个循环遍历排序后的数组,并将每个元素打印到控制台。,用于存储按位分配后的元素。转换为字符串并获取其长度,得到数组中最大数的位数。控制按位处理的次数,根据最大数的位数进行循环。计算当前元素在当前位上的数字(中存储的元素按顺序放回原数组。,用于记录每个数字对应的数组。,并初始化了一些整数元素。中已经存储的元素个数。

2025-04-23 23:43:32 408

原创 算术移位和逻辑移位 -计算机组成原理

算术移位主要用于有符号数的移位操作,在移位过程中,符号位(即最高位)保持不变,而数值位按照移位方向进行相应的移动。

2025-04-22 23:43:06 924

原创 并查集解决所有路径最小成本

这段代码实现了一个基于并查集(Union-Find)和克鲁斯卡尔(Kruskal)算法的程序,用于在一个带权无向图中找到最小生成树(MST)。总的来说,这段代码通过并查集和克鲁斯卡尔算法实现了对带权无向图最小生成树的求解,并处理了图不连通的情况。的根节点,并在查找过程中更新节点的父节点,使其直接指向根节点,从而提高后续查找的效率。时(即最小生成树的边数达到节点数减 1),说明已经找到了最小生成树,退出循环。遍历排序后的边数组,对于每条边,如果它的两个端点属于不同的连通分量(即。数组用于存储图的所有边。

2025-04-22 23:37:13 890

原创 Dijkstra + A_Star 解决指定起点终点的第k长路径

这段代码的主要目的是在一个加权有向图中,先使用Dijkstra算法计算出从一个特定目标节点到其他所有节点的最短距离,然后使用A*算法来找到从起始节点到目标节点的第。评估函数值为当前节点到起始节点的距离加上估计的到目标节点的距离(使用。来存储从目标节点到其他所有节点的最短距离,初始值为。(包含评估函数值、节点编号和到起始节点的距离)。,计算邻接节点的评估函数值,并将其加入优先队列。,将起始节点及其评估函数值和到起始节点的距离。(包含节点编号和到目标节点的距离)。,并将目标节点到自身的距离设为。

2025-04-22 23:30:04 1717 1

原创 类加载的过程与static修饰带来的影响

以下通过一个简单的 Java 程序示例来展示类加载的过程和类加载器的工作情况:javaMyClassMyClassMyClassnull通过这个示例,可以初步了解类加载的过程以及不同类加载器之间的关系和作用。实际应用中,类加载器和类加载过程会更加复杂,涉及到更多的细节和特性。在 Java 中,static。

2025-04-17 00:28:46 426

原创 Windows 中 CMD 关于端口和进程相关的命令

在使用这些命令时,需要注意以管理员身份运行CMD窗口,以确保有足够的权限来执行相关操作,尤其是在杀死进程时,要谨慎操作,避免误杀重要进程导致系统或应用程序出现异常。命令可以查看当前系统中所有活动的网络连接以及它们所使用的端口号,同时还会显示对应的进程ID(PID)。命令可以查找占用特定端口的进程信息。如查询占用8080端口的进程,命令为。命令,在得知占用端口的进程ID后,可通过此命令查找对应的进程名称。参数表示也杀死该进程启动的子进程,参数表示强制结束进程。

2025-04-17 00:24:00 282

原创 设计模式 -原型模式(深拷贝,浅拷贝)

先看这个类图,原型模式很大一部分是为了相同实例化相同的类所构建的设计模式。原型模式是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象。原型模式是一种创建型设计模式,允许一个对象再创建另一个可定制的对象,无需知道如何创建的细节。工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建,即“对象.clone( )”。

2025-04-17 00:20:42 378

原创 Linux常用命令

在Linux系统中,高效管理文件与目录是日常操作的关键。

2025-04-10 23:35:32 629

原创 JVM的变化-jdk1.6到jdk1.8

【代码】JVM的变化-jdk1.6到jdk1.8。

2025-04-08 00:11:20 777

原创 jstat、jmap、jstack 等都是 JDK 自带的工具,用于监控和诊断 Java 虚拟机(JVM)的运行状态

线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。除此之外,它还可以查询 finalize 执行队列、Java 堆和永久代的详细信息,如空间使用率、当前使用的是哪种收集器等。是一个多功能的工具,它可以向正在运行的 Java 虚拟机发送诊断命令请求。这个命令会输出进程 ID 为 1234 的 Java 虚拟机的线程快照信息。生成堆转储快照的效果是一样的。

2025-04-08 00:05:02 366

原创 快速排序 详解 Java实现

在八大排序中,快速排序是一个难度较高以及重要性较高的排序。这篇文章,将详细讲解一下快速排序的实现。

2025-04-01 23:02:28 291

原创 使用反射实现读取配置文件 -案例解析

通过反射实现读取配置文件

2025-03-22 17:31:16 149

原创 查询MySQL慢日志常用命令

这个命令用于查询 MySQL 的全局状态变量,特别是与慢查询相关的统计信息。:通过这个命令,您可以查看慢查询日志是否启用,以及日志文件的位置,便于后续的管理和分析。这意味着任何执行时间超过 3 秒的查询将被记录到慢查询日志中。:通过调整这个值,您可以控制哪些查询会被认为是慢查询,进而帮助您识别和优化性能瓶颈。这个命令用于查询当前 MySQL 配置中与慢查询日志相关的变量。:通过查看慢查询的数量,可以评估数据库的性能情况,并决定是否需要进一步的优化。该命令用于查询与慢查询的时间阈值相关的配置变量。

2025-03-20 23:17:27 207

原创 Java-反射的实现和作用,涉及java.lang.reflect、java.lang.Class

该文章主要讲述java反射的实现,包括如何表示类的对象。提供了方法来获取类的字段、方法、构造函数等。:表示类的字段(属性)。提供了访问和修改字段的能力。:表示类的方法。提供了调用方法的能力。:表示类的构造函数。提供了创建对象的能力。

2025-03-19 09:12:30 316

原创 t4tqtq4t4tq

(183162,'李峰','男','2003-11-07',31589)(190452,'李明','女','2003-7-01',31607)

2023-10-08 11:56:18 82 1

原创 dDFEFef

( 25, '李明', '男', 21, '95031' );( 30, '郑和', '95031' );NAME LIKE '王%';SET NAME = '李华'

2023-10-08 11:43:57 61 1

空空如也

空空如也

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

TA关注的人

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