自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 交易系统的设计与实现

在线交易是生活中必不可少的,交易包括支付和转账,简单理解就是个人或者商户的银行账户下资产的增减行为。在线支付一般需要借助网联进行,网联是网联清算有限公司(NetsUnion Clearing Corporation,简称NUCC)运营的第三方支付机构统一清算平台,由中国支付清算协会组织发起设立, 跨境转账一般通过NUCC进行。在线交易按类型可以大致分为:国内提取款,跨境提取款、电商平台的批次交易…

2024-04-22 17:46:15 169

原创 广告生成策略系统

在互联网大厂中,营销广告需要根据人群的特性生成对应的个性化广告,广告生成策略系统是其中必不可少的一个部分。下面以某公司的广告生成策略系统作为例子分析其架构。

2024-04-22 16:58:33 267

原创 Jvm垃圾回收器cms和g1区别

(Concurrent Mark-Sweep)垃圾回收器是Java虚拟机(JVM)综上所述,选择哪种垃圾回收器取决于应用程序的特性、性能要求以及可用硬件资源。)中的两种不同的垃圾回收策略,它们各有优缺点。G1垃圾回收器(Garbage First)和CMS。jvm垃圾回收器cms和g1区别。

2024-04-15 20:52:39 155

原创 @Transactional 详解

在接下来的整个事务中,客户代码都应该使用该connection连接数据库,执行所有数据库命令[不使用该connection连接数据库执行的数据库命令,在本事务回滚的时候得不到回滚](物理连接connection逻辑上新建一个会话session;REQUIRES_NEW,创建一个新的事务,并在其中执行当前方法,如果已经存在事务,就将其挂起,也就是说如果当前存在事务,那么将当前的事务挂起,并开启一个新事务去执行REQUIRES_NEW标志的方法。NEVER,当前方法不应该在事务中运行,如果存在事务将抛出异常。

2024-04-09 21:09:45 373

原创 rabbit mq 配置要点

所谓毒消息是指消息一直不能被消费者正常消费(可能是由于消费者失败或者消费逻辑有问题等),就会导致消息不断的重新入队,这样这些消息就成为了毒消息。Exclusivity表示独占队列,即表示队列只能由声明该队列的Connection连接来进行使用,包括队列创建、删除、收发消息等,并且独占队列会在声明该队列的Connection断开后自动删除。直接交换器(Direct Exchange): 直接交换器是最简单的交换器类型,它将消息路由到与消息中的路由键(routing key)完全匹配的队列。

2023-12-18 19:11:52 954

原创 数据库锁的设计

一般在支付、商品交易的库存变更等业务场景采用悲观锁方案;在广告、电商浏览页面、投票等场景采用乐观锁方案。

2023-12-05 17:25:30 453

原创 leetcode 241. 为运算表达式设计优先级

给你一个由数字和运算符组成的字符串 expression ,按不同优先级组合数字和运算符,计算并返回所有可能组合的结果。例:1 + 2 + 3 -> (1) + (2 + 3),1和 (2 + 3) 分别reduce到base case, 再进行两个中间的运算。expression 由数字和算符 ‘+’、‘-’ 和 ‘*’ 组成。输入:expression = “2-1-1”输出:[-34,-14,-10,-10,10]输入表达式中的所有整数值在范围 [0, 99]输入:expression = “2。

2023-09-16 20:58:43 224

原创 Java 锁(synchronized)升级过程

升级为轻量级锁之后会在thread-2线程的栈帧中开辟一块锁记录空间叫做displaced Mark Word,并将锁对象的markword拷贝到线程本身的displaced Mark Word空间中,然后通过cas的方式去设置锁对像中线程id指针,并将锁的标志设置为00;最开始的synchronized的实现是直接启用重量级锁,这样对于效率的影响是比较大,在后来的改进中引入了锁升级的概念,来增加执行的效率。java中的锁是针对对象而言的,它锁住的是一个对象,并且具有可重入的性质。

2023-09-11 15:04:23 180

原创 高性能缓存 Caffeine 原理及实战

这就需要有合适的算法辅助我们淘汰掉使用价值相对不高的对象,为新进的对象留有空间。比如一个数据在一分钟内的前59秒访问很多次,而在最后1秒没有访问,但是有一批冷门数据在最后一秒进入缓存,那么热点数据就会被冲刷掉。缺点是如果先缓存的数据使用频率比较高的话,那么该数据就不停地进进出出,因此它的缓存命中率比较低。二、无法合理更新新上的热点数据,比如某个歌手的老歌播放历史较多,新出的歌如果和老歌一起排序的话,就永无出头之日。它是优先淘汰掉最不经常使用的数据,需要维护一个表示使用频率的字段。

2023-09-02 23:25:30 301

原创 LRU cache的实现细节优化——伪结点的技巧

伪节点技巧,双端链表

2023-08-26 14:30:00 484

原创 Redis大key问题的排查与解决

大 key 并不是指 key 的值很大,而是 key 对应的 value 很大。一般而言,下面这两种情况被称为大 key:String 类型的值大于 10 KB;Hash、List、Set、ZSet 类型的元素的个数超过 5000个;

2023-08-18 16:52:37 810

原创 字符串的无重复排列组合

若字符串长度为n,将第一个字母分别与后面每一个字母进行交换,生成n种不同的全排列;再用第二个元素与后面每一个元素进行交换,生成n - 1种不同的全排列……输出:["qwe", "qew", "wqe", "weq", "ewq", "eqw"]仔细观察可以发现,求不同全排列的问题其实是可以利用交换字符串元素来完成的;输出:["ab", "ba"]字符串长度在[1, 9]之间。输入:S = "qwe"输入:S = "ab"

2023-08-18 15:55:04 210

原创 数据库执行计划

对于一棵B+树索引来讲,如果根节点是字符def,假如查询条件的通配符在后面,例如abc%,则其知道应该搜索左子树,假如传入为efg%,则应该搜索右子树,如果通配符在前面%abc,则数据库不知道应该走哪一面,就都扫描一遍了。你可以想象一下,对于一棵B+树,根节点是40,如果你的条件是等于20,就去左面查,你的条件等于50,就去右面查,但是你的条件是不等于66,索引应该咋办?还不是遍历一遍才知道。,在 WHERE 子句中,如果在 OR 前的条件列是索引列,而在 OR 后的条件列不是索引列,那么索引会失效。

2023-06-16 22:33:26 1820

原创 最短路径问题及其延伸问题

求图(单源简单图)的最短在实际生活中有许多应用,比如说在你在一个景区的某个景点,参观完后,要怎么走最少的路程到你想参观的下个景点,这就利用到了求图最短路径的算法。迪杰斯特拉算法采用贪心算法的策略,将所有顶点分为已标记点和未标记点两个集合,从起始点开始,不断在未标记点中寻找距离起始点路径最短的顶点,并将其标记,直到所有顶点都被标记为止。path[ ]:path[ i ]表示从源点到顶点 i 之间的最短路径的前驱结点。有些场景下需要知道路径的具体信息,可以用一个数组或者list来存储。

2023-06-05 15:11:48 83

原创 Java PriorityQueue详解

优先队列

2023-05-27 22:14:55 125

原创 Leetcode2653 桶排序的应用

桶排序,leetcode

2023-05-25 16:02:00 811

原创 MySQL统计函数count详解

sql 查询 count语句

2023-04-26 16:13:29 1197

原创 leetcode1615

leetcode,简单图论问题

2023-03-29 21:17:43 300

原创 Leetcode 39 组合之和问题

Leetcode 39 组合之和问题

2023-03-07 21:25:47 64

原创 leetcode 15 三数之和

三数之和

2023-02-23 20:37:58 69

原创 Leetcode 1071 字符串的最大公约数

leetcode1071

2023-02-06 21:48:53 141

原创 Leetcode 149 max points

Leetcode 149, 算法

2023-02-01 20:34:31 67

原创 分布式事务解决方案

分布式事务解决方案简介

2023-01-30 15:33:07 169

原创 Java虚拟机类加载机制(类加载的时机)

java类加载机制

2022-12-16 17:49:51 172

原创 解决 could not initialize proxy [com.xxx.xxx.xxx.entity.xxxInfo#1] - no Session

解决 could not initialize proxy [com.xxx.xxx.xxx.entity.xxxInfo#1] - no Session

2022-12-02 13:42:41 342

原创 leetcode124二叉树最大路径和

leetcode 124, 二叉树最大路径和,树形dp求解

2022-11-29 20:30:35 94

原创 leetcode 947 Most Stones Removed with Same Row or Column

leetcode 947,并查集

2022-11-24 22:10:41 72

原创 leetcode 1488

leetcode1488,treemap, 贪心

2022-11-18 14:35:23 657

原创 数据库表的常见操作

数据库dba操作

2022-11-17 14:08:14 776

原创 Leetcode215 Kth Largest Element in an Array

Leetcode215。数组中第k大

2022-11-13 21:21:59 175

原创 Leetcode899 有序队列Orderly Queue

Leetcode 899 有序队列

2022-11-13 20:51:21 282

原创 beanFactory与factoryBean的区别

beanFactory与factoryBean的区别

2022-11-13 12:30:43 112

原创 Leetcode34 有序数组元素查找Find First and Last Position of Element in Sorted Array

有序数组二分查找

2022-11-09 21:56:03 269

原创 链表入环节点的查找

链表入环节点

2022-11-08 10:32:28 139

原创 文档搜索系统的后端架构设计

文档搜索系统后端设计

2022-11-06 20:58:29 155

原创 骑士救公主

骑士救公主、二维数组遍历查询

2022-10-07 22:50:13 152

原创 最小差值问题(数组、二叉树)

数组、二叉树最小差值问题

2022-10-07 20:22:20 275

原创 spring jpa 问题排查

jpa日志打印

2022-10-05 22:28:29 212

原创 Mac电脑docker安装与环境配置

docker安装与环境配置

2022-10-05 21:58:53 2421

原创 一些常用的工具网站

工具网站

2022-09-09 16:43:44 111

空空如也

空空如也

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

TA关注的人

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