自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 碎碎念念-动态代理:JDK动态代理

本文小结了Java语言中的JDK动态代理技术,分析其底层原理并进一步说明在rpc框架中的应用

2024-12-03 15:25:14 868

原创 spring中Bean的生命周期浅谈--rpc嵌入spring

本文简述了Bean声明周期执行方法的InitializingBean,BeanPostProcessor, EnvironmentAware三个方法中的接口的执行顺序。

2024-12-03 12:00:18 521

原创 服务熔断-熔断器设计

本文专注于服务保护机制中的-熔断器设计,为了提供高可用服务,提高服务容错性。

2024-11-30 11:52:31 789

原创 并发编程-多线程交替打印

本篇博客专注于Java或Go中并发编程知识,实现多线程交替打印

2024-11-30 09:48:00 236

原创 mit6824-08-persistence

这篇文章简单实现了mit6824lab3B,raft日志一致性的实验,对于raft如何实现日志一致性,Leader节点和Follower节点何时进行日志commit有更深层次的认识与了解。

2024-11-17 21:06:56 515

原创 LC13:滑动窗口

本专栏记录自己刷题碰到的有关滑动窗口的题目:1052.爱生气的书店老板

2024-11-16 13:02:28 367

原创 LC12:双指针

本专栏记录刷题过程中遇到的双指针的题目,仅供学习参考

2024-11-15 23:03:22 443

原创 mit6824-07-Lab3A-leader election

本篇专注于Raft选举机制,实现mit6824Lab3A的领导选举功能,对于理解分布式公式算法-Raft的领导选举、状态流转、选举超时控制以及简单心跳检测机制有益。

2024-11-15 11:48:45 764

原创 LC刷题合集

本文汇总自己的刷题合集,目前包括:链表、二分查找、贪心、动态规划、图、字典序、记忆化搜索、队列、栈、二叉树、递归、堆、大顶堆、小顶堆、DFS、BFS、哈希表

2024-11-13 20:55:31 219

原创 JUC学习笔记

本篇博客是之前学习JUC时记录的内容,对于并发编程知识只是浅浅谈及,并不深入。也算是给自己开新坑。建一个JUC的专栏,后续学习有地方记录。

2024-11-13 20:19:26 1393

原创 LC01:链表合集

本专栏以后记录自己刷题碰到的链表相关的题目

2024-11-12 23:21:48 289

原创 LC02:二分查找

本专栏以后记录自己刷题过程中碰到的关于二分查找的题目

2024-11-09 17:04:34 478

原创 mit6824-06-Raft学习记录01(一文搞懂Raft)

Raft学习记录,汇总分布式Raft相关知识。

2024-11-06 22:39:02 935

原创 分布式——一致性模型与共识算法

一致性问题是分布式领域最为基础也是最重要的问题。一般来讲,分布式系统中的一致性按照对一致性要求的不同,主要分为强一致性,弱一致性这两大类,前者是基于 safety 的概念,后者是基于 liveness 的概念。强一致性包含线性一致性和顺序一致性,其中前者对 safety 的约束更强,也是分布式系统中能保证的最好的一致性。如果一个并发执行过程所包含的所有读写操作能够重排成一个全局线性有序的序列,并且这个序列满足以下两个条件,那么这个并发执行过程就是满足顺序一致性的:线性一致性的定义,与顺序一致性非常相似,也是

2024-11-06 14:45:26 1515

原创 LC03:贪心题解

这个专栏记录以后做题遇到的关于贪心的题目

2024-10-31 22:52:22 225

原创 mit6824-05-Lab2:Key/Value Server

这个Lab2整体比较容易,根据官方提示,能够写出一大半。有一点小细节参考其他优秀博客实现。第一个任务总体没有难度,只需要在client.go文件中写对应的调用代码,随后在 server.go 中定义 map 存储对应元素即可。在这里我不给出任务1的代码了,可以参考下面任务2的总体代码,里面包含任务1的代码。任务2相对任务1有点难度,根据上面图片提示可以总结如下:结果体定义:common.go 中比较重要的:上面的PutAppendArgs 结构体中的后两个变量:server.go中结构体:kvMa

2024-10-29 13:24:51 404

原创 LC04:动态规划

本篇博客后续记录自己刷题过程遇到的有关DP的题目,实时更新。486. 预测赢家877. 石子游戏664. 奇怪的打印机376. 摆动序列324. 摆动排序 II322. 零钱兑换329. 矩阵中的最长递增路径

2024-10-28 13:19:16 202

原创 mit6824-04-主备份复制(VM-FT论文)

mit6824推荐的第3篇论文VM-FT。可以阅读这篇博客「」学习VM-FT论文,下面内容是基于另外博客对改内容的扩容,推荐阅读。

2024-10-27 16:32:19 1292

原创 mit6824-03-GFS论文记录

本问主要聚焦于GFS,参考其他博主的博客,学习GFS文件系统的设计理念以及实现,后续会抽时间学习原论文,并不断更新自己的认知。

2024-10-27 13:35:34 663

原创 LC05:图合集

对于图的题目自始至终都非常恐惧,做一个图的专题,以后专门用于自己遇到的图相关的话题,后续也可以学习一下并查集的思想以及实现。图大部分和 dfs 以及 bfws相联系的

2024-10-25 20:19:27 291

原创 mit6824-02-Lab1:MapReduce分布式实现

本文主要聚焦于MIT6.824Lab1实现,本人结合其他人的博客以及代码,自己实现了Lab1并通过了所有测试,将自己的理解以及感悟汇总记录。

2024-10-24 16:21:02 927

原创 LC:动态规划-买卖股票-一文秒解股票6题

一文秒解股票6题:第一次看到题目联想到的是在上面两道动态规划的基础上修改一番,仍然使用两个变量表示0表示不持有股票,1表示持有股票。但此时存在一个问题:对于dp[i][0] 不持有股票的表示,无法确定对于某一天「是前一天不持有股票还是前一天持有股票随后将股票卖掉而出现的新的不持有股票的状态。秒了,设二维dp数组,dp[i][0]表示第i天不持有能够获得的最大利润,dp[i][1]表示第 i 天持有股票能够获取的最大利润。

2024-10-21 22:03:05 622

原创 LC06:字典序排序

【代码】LC:字典序排序。

2024-10-16 12:07:47 268

原创 LC07:记忆化搜索

本刷题专栏记录自己的记忆化搜索的做题。

2024-10-08 18:15:05 394

原创 分布式理论-拜占庭将军问题(The Byzantine Generals Problem)

分布式中的拜占庭问题作为典型问题,充分理解此问题对于分布式环境的共识的理解能够更进一步。本文借助战国苏秦合纵六国灭秦国的故事探讨拜占庭将军问题,充分展示拜占庭将军问题和分布式共识的关系。以此引出分布式共识问题在分布式中的重要地位。

2024-10-08 13:41:29 1055

原创 LC08:队列、双端队列、栈

这个专题记录自己刷题过程中遇到的与队列有关的题目。单调栈、双端队列、队列。

2024-10-07 18:10:04 462

原创 SLMA-雷达点如何转变为range image图像以及range image图像和球坐标系的关系;IROS 2020 REMOVERT动态SLAM论文解析

通过上述操作可以将激光雷达采集到的点在雷达回调函数中从ros的msg格式转化为自定义格式。获取到自定义雷达数据后,一般需要将一帧雷达数据中的所有点转换到range image中。range image的横坐标是雷达的垂直分辨率,纵坐标是雷达的水平分辨率。上图右边所示的图片是更具体的关于雷达点云的像素(rang)投影过程解释,具体可以参考下面这篇知乎原文对于Removert论文的解释,非常清晰。上面的二维图像表示并没有真正使用二维图像,而是将二维图像一维划,这个也是雷达点云处理非常普遍的处理方式。

2024-10-07 16:40:29 609

原创 Apache POI实现数据以excel文件的形式导出

Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是,我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。一般情况下,POI 都是用于操作 Excel 文件。应用场景:银行网银系统导出交易明细、各种业务系统导出excel报表、批量导入业务数据等。Apache POI介绍。

2024-10-07 09:36:48 427

原创 深入理解 synchronized 的锁升级【转载】

最近看到一道有关 synchronized 关键字的面试题:不同 JDK 版本对 synchronized 有何优化?这道面试题的目的是为了考察JDK 1.6后对锁的优化(增加了自适应自旋锁、锁消除、锁粗化、偏向锁、轻量级锁)。通过这道面试题让我重新复习了一下锁升级的内容,接下来我想通过这篇文章主要讲述 synchronized 的锁升级知识,有兴趣的读者们可以继续往下阅读。在 JDK 1.6 之前,使用 synchronized 关键字需要依赖于底层操作系统的 Mutex Lock 实现,

2024-10-07 09:32:30 1603

原创 一文搞懂幂等,什么是幂等,常见的幂等实现方案有哪些,HTTP的四种请求是否是幂等的

通俗来讲:幂等就是一个操作,不论执行多少次,产生的效果和返回的结果都是一样的。什么是幂等实现幂等的必要性幂等的实现技术有哪些唯一索引、组合索引Token机制悲锁乐观锁分布式锁Select + Insert系统对外提供的接口如何实现幂等性幂等和分布式系统的关系HTTP的四个请求是否是幂等的GET、PUT、DELETEPOST使用幂等性区分POST和PUT请求参考链接

2024-10-06 23:12:33 2278

原创 动态SLAM总结二

动态SLAM系列论文二:Mapping the Static Parts of Dynamic Scenes from 3D LiDAR Point Clouds Exploiting Ground Segmentation:(2021)RF-LIO:(2022)RH-Map:(2023)Mapless Online Detection of Dynamic Objects in 3D Lidar:(2018)Motion-based detection and tracking in 3D Li

2024-10-06 21:09:33 590

原创 动态SLAM总结一

汇总自己最近看到的有关动态SLAM的论文,主要包括离线以及在线,同时包括三大分类,基于深度学习的、基于可视化的、基于网格占据的。这篇文章只是自己学习过程的一个记录,很多可能不是正确的,仅供参考

2024-10-05 20:02:10 1019

原创 LC10:堆、大顶堆、小顶堆

这篇文章以后记录自己刷到的题目中与堆有关的。主要包括大顶堆、小顶堆自己刷题遇到的题目的合集。692. 前K个高频单词215. 数组中的第K个最大元素2336、无限集中的最小数字2462. 雇佣 K 位工人的总代价

2024-10-05 17:59:55 347

原创 分布式学习02-CAP理论

CAP理论对分布式系统的特性做了高度抽象,将其抽象为并对特征间的冲突做了总结:CAP不可能三角。本篇文章介绍分布式的CAP理论,参考此篇以加深对于分布式三要素CAP的理解

2024-10-04 22:43:39 1330

原创 LC09:二叉树;迭代;递归

这篇文章以后记录自己刷题过程中碰到的与二叉树相关的题目,以及递归和迭代相关。897.递增顺序搜索树1372. 二叉树中的最长交错路径208. 实现 Trie (前缀树)450. 删除二叉搜索树中的节点

2024-10-04 17:29:28 264

原创 Go基础学习11-测试工具gomock和monkey的使用

这篇文章主要针对go语言中的测试工具进行回顾总结,包括mockgen、mockey等。Mock是单元测试中常见的一种技术,就是在测试过程中,对于一些不容易构造或者获取的对象,创建一个Mock对象来模拟对象的行为,从而把测试与测试边界以外的对象隔离开。上面使用mockgen生成对应的mock文件缺点非常明显,只能对于接口类的函数进行mock,然而实际项目并非所有函数都是接口类函数,上述代码中的UserData是一个Interface{}类型,后面使用Mock生成的对象就是此接口对象,

2024-10-04 16:56:11 2521

原创 LC11:dfs、bfs、哈希表合集

自己刷题缺少分类思想,总是这里刷一道那里刷一道,以后建立几个专辑,然后自己新刷的同类型的题目都会即使更新上。这个专栏主要集中dfs、bfs、深度广度优先搜索算法的合集,以后会逐渐完善,共同见证成长。690:员工的重要性1657. 确定两个字符串是否接近2352. 相等行列对1372. 二叉树中的最长交错路径187. 重复的DNA序列827. 最大人工岛576. 出界的路径数1926. 迷宫中离入口最近的出口

2024-10-03 22:37:32 499

原创 分布式学习01-网络分区问题讲解以及解决方案

本文总结了网络分区出现的原因,已经常见的基于集群的网路分区如:集中式集群的网络分区、非集中式集群的网络分区。同时给出了四种解决网络分区的方法。

2024-10-03 20:21:32 1241

原创 Go基础学习10-原子并发包sync.atomic的使用:CSA、Swap、atomic.Value......

原子操作sync.atomic以及原子变量atomic.Value详细介绍。go中原生的支持原子操作的函数支持的变量类型int32、int64、uint32、uint64、uintptr,以及unsafe包中的Pointer。对于上述原子操作类型中的每一个,可以支持的数据类型有:==int32、int64、uint32、uint64、uintptr,以及unsafe包中的Pointer。但是否sync.Mutex变量能够保证操作的原子性。atomic.Value类型是开箱即用的,我们声明一个该类型的变量

2024-10-02 23:04:10 1275

原创 LC记录二:丑数专题,一文秒解丑数3题

丑数题解,一问秒解丑数欢数学的学生为A集合,喜欢数学的学生为B集合,喜欢编程的为C集合。那么学生总数为∣A∪B∪C∣,如果直接将三个集合的个数相加即∣A∣+∣B∣+∣C∣会有重复个数,因此需要扣掉一些元素即∣A∩B∣,∣A∩C∣,∣B∩C∣,但是这时候我们发现∣A∩B∩C∣这部分又会被多扣一次,所以最后再加上这一部分。上一题的进阶版本:需要我们找出第n个丑数,我们首先需要明确的是,对于一个具体的丑数 m 来说,他可能对应的下面三个丑数分别为 2 * m,3 * m,5 * m。参考题解解决:求解第n个质数,

2024-10-02 12:22:26 1199

空空如也

空空如也

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

TA关注的人

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