- 博客(19)
- 收藏
- 关注
原创 PRC框架(以Dubbo为例),分布式事务解决方案
Seata(Simple Extensible Autonomous Transaction Architecture)是阿里开源的分布式事务解决方案,支持AT、TCC、SAGA和XA模式。:支持Random、RoundRobin、LeastActive等多种策略。Try: 创建订单(状态:处理中) → 冻结库存 → 冻结金额。:支持Hessian、JSON、Java原生序列化等。:默认使用Dubbo协议,也支持HTTP、RMI等。:支持服务降级、动态配置、服务分组等。
2025-03-24 22:01:51
631
原创 如何解决微服务调用链性能问题(优化 JVM 配置,降低 Full GC 频率)
在微服务架构中,服务之间的调用链较长,且频繁的远程调用可能导致性能瓶颈。同时,JVM 的 Full GC(Full Garbage Collection)频繁发生会导致应用暂停时间过长,影响用户体验。具体问题表现为:微服务调用链响应时间较长。JVM 堆内存使用不合理,Full GC 频率高(如每小时多次 Full GC)。系统吞吐量下降,用户体验不佳。使用分布式追踪工具:通过集成 SkyWalking 或 Zipkin 对微服务调用链进行监控,分析调用链中每个环节的耗时。
2025-03-23 21:48:22
913
原创 CAS简要总结
CAS(Compare-And-Swap)是一种原子操作,用于实现多线程同步。它比较内存中的值与预期值,若相等则更新为新值,否则不操作。CAS广泛应用于无锁数据结构和并发控制,如Java中的包。
2025-03-20 19:29:47
391
原创 ThreadLocal底层原理,内存泄露问题,以及如何在项目中使用这个关键字(总结)
通过实现线程本地存储,每个线程有独立的变量副本。使用不当会导致内存泄露,需及时调用remove()清理。在项目中常用于会话管理、数据库连接管理和日志跟踪等场景。
2025-03-19 21:31:57
616
原创 List、Set 和 Map 的区别及常见实现类、线程安全集合(总结图表)
List、Set 和 Map 的区别及常见实现类、线程安全集合(总结图表)
2025-03-18 21:13:19
1378
原创 登录系统测试用例设计参考(163邮箱)
根据测试用例的执行结果,分析163邮箱登录系统是否存在缺陷,并记录缺陷的详细信息,包括缺陷描述、重现步骤、严重程度等。验证163邮箱登录系统的功能、性能、安全性、兼容性等方面是否符合需求,确保用户能够安全、稳定地登录邮箱。Windows 10, macOS, Linux, Android, iOS 等。Chrome, Firefox, Edge, Safari 等主流浏览器。编写测试报告,总结测试过程、测试结果、缺陷分析等内容,并提出改进建议。测试过程中应注意保护用户隐私,避免泄露用户账号和密码等信息。
2025-03-17 20:17:41
949
原创 LeetCode Java 环形链表II(快慢指针)图解
给定一个链表的头节点head,返回链表开始入环的第一个节点。如果链表无环,则返回null。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(如果pos是-1,则在该链表中没有环。pos,仅仅是为了标识链表的实际情况。链表。返回索引为 1 的链表节点链表中有一个环,其尾部连接到第二个节点。返回索引为 0 的链表节点链表中有一个环,其尾部连接到第一个节点。返回 null链表中没有环。
2025-03-13 17:03:45
1072
原创 LeetCode Java相交链表(双指针遍历)
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。
2025-03-12 16:39:49
921
原创 LeetCode Java旋转图像(矩阵转置,左右两列互换)
给定一个n×n的二维矩阵matrix表示一个图像。请你将图像顺时针旋转 90 度。你必须在旋转图像,这意味着你需要直接修改输入的二维矩阵。使用另一个矩阵来旋转图像。
2025-03-11 14:01:04
352
原创 LeetCode Java缺失的第一个整数(原地哈希)
原地哈希(In-place Hashing)是一种在有限空间内处理数据的算法技术,通常用于在不使用额外存储空间的情况下对数据进行哈希操作。这种方法在内存受限的环境中非常有用,例如嵌入式系统或实时数据处理。
2025-03-10 10:40:05
826
原创 LeetCode Java无重复字符的最长子串,利用HashSet求解
官方求解用的HashMap,我发现用HashSet也可以进行求解给定一个字符串s,请你无重复字符的最长子串找出其中不含有重复字符的的长度。3因为无重复字符的最长子串是"abc",所以其长度为 3。1因为无重复字符的最长子串是"b",所以其长度为 1。3因为无重复字符的最长子串是"wke",所以其长度为 3。请注意,你的答案必须是的长度,"pwke"是一个子序列,不是子串。
2025-03-09 14:55:42
916
原创 Vue2+Spring 算法 基因序列比较
人类基因由4种核苷酸,分别用字母ACTG表示。要求编写一个程序,按以下规划比较两个基因序列并确定它们的相似程度。给出两个基因序列AGTGATG和GTTAG,它们有多相似呢?测量两个基因的相似度一种方法称为对齐。使用对齐方法可以在基因的适当位置加入空格,让两个基因的长度相等,然后根据基因的分值矩阵计算分数。
2025-03-08 19:30:52
589
原创 Vue2+Spring 基于最优调度算法的作业排程问题设计与实现
作业排程问题(Job Scheduling Problem)是运筹学和算法设计中的经典问题之一,广泛应用于生产制造、计算任务调度、项目管理等领域。针对多个作业需要在有限资源下完成,如何合理分配资源、优化调度顺序,以或,是一个重要的优化问题。假设有 n个作业 J1,J2,…,Jn 和 m台机器 M1,M2,…,Mm, 每个作业都有对应的执行时间。机器可以同时处理不同的作业,但同一时间一台机器只能处理一个作业。
2025-03-07 21:30:34
864
原创 groovy业务(求最值)
max=(实际教学+教学D1)/额定教学*教学系数+(实际业绩+业绩D1+业绩D2)/额定业绩*业绩系数+(实际项目+项目D2)/额定项目*项目系数教学D1+业绩D1 = D1项目D2 + 业绩D2 = D2教学D1<=额定教学*0.5(业绩D1+业绩D2)<=额定业绩*0.5项目D2<=额定项目*0.5(实际+D)/ 额定最多只能为1,实际,额定,D1,D2,系数都为已知,需要分配教学D1,业绩D1,项目D2 ,业绩D2,使其max为最大。
2025-03-05 13:50:25
125
原创 Vue3 拖拽分隔条动态调整相邻两个盒子的宽度(可反复拖拽)
用户可以通过拖拽分隔条(.resize元素)来调整相邻两个盒子的宽度。左侧盒子和右侧盒子的宽度会根据拖拽的距离动态变化。左侧盒子的宽度最大为500px,最小为250px。右侧盒子的宽度最小为250px。当宽度达到最小或最大值时,拖拽操作会被限制。如果子元素没有设置宽度,则默认分配flex: 1,使其均匀占据剩余空间。拖拽分隔条时,分隔条的颜色会变化(通过和onMouseup实现)。拖拽过程中,实时计算并更新左右盒子的宽度。使用函数兼容不同浏览器获取下一个兄弟元素的方式。
2025-03-04 21:41:22
982
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人