自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 【问题】YYYY-MM和yyyy-MM的区别

摘要: Java日期格式化中YYYY-MM与yyyy-MM存在关键差异:YYYY基于周计算年份,跨年时可能返回错误结果(如2024-12-29被格式化为2025-12),而yyyy始终基于自然年。

2025-09-18 10:00:00 851

原创 【问题】Mybatis-plus框架使用@Select注解编写查询SQL,json字段查询转换失败

摘要: MyBatis-Plus中复杂对象属性未映射的问题通常由两个原因导致: 未开启自动映射:实体类需添加@TableName(autoResultMap=true)并指定@TableField(typeHandler),否则框架仅处理基础属性; 自定义SQL注解缺失映射:使用@Select查询时需配合@ResultMap("Mapper全路径.mybatis-plus_实体类名")以复用自动生成的映射规则。 解决方案: 开启autoResultMap确保复杂属性处理; 自定义SQL时

2025-08-13 10:00:00 1645

原创 【设计模式】享元模式

当系统面临对象数量爆炸性增长,占用内存过大的情况,可以考虑是否使用享元模式。同时还要确认对象是否存在可复用的逻辑以及多少状态可以在外部传递进行处理。

2025-04-27 11:51:31 612

原创 【设计模式】原型模式

原型模式能够很快速的创建出大量的相通状态的对象,但是在使用时需要结合业务场景考虑深拷贝和浅拷贝的问题,同时也需要考虑大量数据构造的情况下内存使用情况。

2025-04-03 14:56:37 909

原创 【设计模式】模板方法模式

模板方法模式类似于流水线工作,指定了标准的流程又提供了个性化的空间,模板方法模式是比较常用的设计模式在主流框架中都能找到相关的使用,掌握模板方法可以让您在代码规范和灵活性之间找到相对的平衡。

2025-04-01 12:31:36 539

原创 【设计模式】设计模式六大原则

2025-03-31 13:26:21 389

原创 【Kafka】管理Kafka

可以执行大部分与主题相关的操作 (增删改查)

2025-03-28 07:30:00 1884

原创 【设计模式】策略模式

策略模式将算法从业务逻辑中解耦出来,是消除条件表达式的重要模式,能够很好的提高可读性。建议与工厂模式进行组合使用。

2025-03-27 13:44:02 675

原创 【设计模式】责任链模式

使用责任链模型将复杂的处理逻辑拆分为独立的单元,可以动态的进行增删,提高了系统的灵活性和可维护性。

2025-03-26 16:45:58 623

原创 【Kafka】Kafka生产者如何实现冥等的?

通过启用Kafka的冥等生产者,可以保证每条消息在分区中仅被写入一次,即使触发了生产者重试机制也不会导致消息重复。

2025-03-26 14:26:24 1182

原创 【Kafka】Kafka可靠的数据传递

有3个副本,最终只用一个同步副本,最后这个副本也变为不可用,那么需要在可用性和一致性做出选择。根据Kafka可靠性保证,一条消息被写入所有同步副本后才认为是已提交的,如果没有可用副本,则数据有可能丢失。如果两个消息,#30和#31,记录#30处理失败,#31处理成功,这时不能进行#31的提交,否则会将记录#30标记为成功。如果broker我们配置了高可靠,但是生产者没有进行可靠性方面的配置,那么系统还是会有丢失数据的风险。把消息写入多个副本,可以保证kafka在发生崩溃后仍然能够提供消息的持久性。

2025-03-24 17:40:32 1175

原创 【Kafka】深入了解Kafka

客户端持有集群的元数据缓存,元数据中包含了客户端感兴趣的主题清单以及主题包含的分区、副本、首领等,一般情况下客户端会直接向目标broker发送生产请求和获取请求。仲裁,管理元数据事件日志,这个日志包含了集群元数据的每一个变更,原先保存在Zookeeper中的所有东西(主题、分区、ISR、配置等)都保存在这个日志中。,负责处理来自所有broker的RPC的调用,跟随者控制器从主控制器复制数据,并会作为主控制器的热备,Kafka中每个主题有若干分区,每个分区可以有多个副本,副本均匀的分布在多个broker中。

2025-03-20 23:15:01 1563

原创 【Kafka】Kafka消费者

Kafka不会提交每一条记录,消费者会将已成功处理的最后一条消息提交给Kafka并假定该消息之前的消息都已经成功处理。当一个新的消费者加入消费者组或者一个消费者关闭或崩溃离开消费组,原本由他读取的分区分配给其他消费者读取。,一个组里面的消费者订阅的是同一个主题,每个消费者负责从这个主题读取部分消息。发送心跳,以此来保持群组成员关系和对分区所有权的关系。分区的所有权从一个消费者转移到另一个消费者的行为成为。如果批次大小超过了该属性限制,那么限制将被忽略。更新分区当前位置的操作叫做。Kafka的消费者从属于。

2025-03-19 15:40:31 1106

原创 【Kafka】Kafka写入数据

不管是把Kafka作为消息队列还是数据存储平台,总是需要一个可以往Kafka写入数据的生产者,一个可以从Kafka读取数据的消费者。

2025-03-18 15:26:20 1341

原创 【数据库】MySQL中bin log、redo log、undo log详解

MySQL中,查询一条数据,会将该数据相关页的所有数据一次性加载出来,放入 中,后续都是从中进行查找;对数据做修改时,如果数据在中存在,则直接更新里面数据,然后将更新操作记录到 中,等待合适时间刷新到redo log 文件中。redo log的日志文件是以日志文件组的形式出现的,每个redo日志文件大小都是一样的,采用环形数组的形式,从头开始写,写到结尾继续从头开始写。日志文件组中有两个重要的属性当redo log记录到日志文件组中,向后推移MySQL从日志文件组中恢复数据时,会清空加载过得redo log

2025-03-17 16:28:22 1494

原创 【数据库】MySQL事务详解

都是基于MVCC(多版本并发控制)来搞的,为什么可重复读在查询事务没有结束前不会读到别人提交的数据,读已提交会呢?的数据加了行锁,并且一直不commit,事务B因为执行更新语句,拿不到锁就会一直阻塞,直到超时。因为id是有索引,所以在执行事务时mysql会给相应的数据行加行锁,如果调用。隔离级别下,事务A第二次读取与第一次读取完全相同,所以是可重复读的。隔离级别下,事务A读取到了事务B提交的数据,导致了不可重复读。该隔离级别下,读数据,不进行加锁,增删改的时候是添加行锁的。的语句,会怎么样呢?

2025-03-12 10:11:14 1247

原创 【数据库】MySQL的索引详解

索引是一种用于快速查询和检索数据的数据结构,类似于书的目录。在几百页的书通过几页目录就可以精确定位到我们想看的章节。

2025-03-11 07:00:00 1047

原创 【问题】HashMap的computeIfAbsent方法丢失数据问题分析

就很好奇HashMap的computeIfAbsent会不会也有问题,一试之下发现确实存在问题,相同的代码在HashMap中会丢失插入的数据。查看直接结果会发现 循环添加的map打印出来的value是一个,但是size=2,证明数据添加是执行了,但是数据丢失了。【循环添加】时,如果key的hash相同,会导致前面的值得覆盖,而不是追加,所以导致数据丢失。此时 i=15,所以是给tab的第15个桶进行赋值,然后返回,继续执行第一个。开始赋值时,first和i的值,以及 tab[i]的值。

2025-03-10 00:00:51 428

原创 【问题】ConcurrentHashMap死循环问题分析

执行时,节点 r 地址是734,在 casTabAt 方法中放到了i=15的桶中 ,然后调用value的lambda表达式。如果循环赋值的两个key hash是相同的,在第一次构建node对象时就会发生死循环。方法中 有个for循环,在这里打上断点,就可以进入断点验证是否一直在循环执行。节点是第一步构造的节点,对象地址也是734,导致hash小于0一直不能进行赋值。在处理客户问题时,有个方法一调用就卡住了,最后排查时发现堆栈一直卡在。代码中,一直在进行循环,最后确认是在该代码中死循环了。

2025-03-09 23:20:25 523

原创 【问题】使用RestTemplate调用Http请求,赋值host属性无效问题

在与第三方系统联调时,给出的文档需要在 headers中给host属性添加对方指定的值。联调过程中发现调用失败。使用抓包命令发现headers中host内容并不是程序设置的内容。使用RestTemplate 进行http调用,jdk在。

2025-03-08 22:02:56 358

原创 【设计模式】单例模式

单例模式:确保一个类只有一个实例,并提供一个全局访问点。

2025-03-08 20:46:58 259

原创 【设计模式】工厂模式

简单工厂:不算是一个真正的设计模式,却是一个常用的,将对象的创建和业务代码解耦的方案。工厂模式:定义了一个创建对象的接口,由子类(子工厂)决定提供哪些类的实例。工厂方法让类把实例化推迟到子类。抽象工厂:提供一个接口,用于创建相关或依赖对象的家族,而不需要指明具体的类。

2025-03-08 20:46:23 212

原创 【多线程】AQS详解

是一个抽象的队列同步器,AQS利用模板方法模式解决了开发者在实现同步器时的复杂问题,提供了一个通用的加锁解锁框架。

2025-03-07 14:27:22 690

原创 【多线程】Java中的锁

java中的锁是用来控制多个线程访问共享资源的方式。一般来说一个锁能够防止多个线程同时访问共享资源(

2025-03-06 15:02:27 433

原创 【多线程】volatile关键字详解

volatile主要用于解决和的问题,但volatilevolatilevolatile。

2025-03-06 10:38:28 865

原创 【异常】解决使用JPA时提示 Batch update returned unexpected row count from update 问题

解决使用JPA时提示 Batch update returned unexpected row count from update的问题

2025-03-05 19:08:37 1124

原创 【PG】PostgressSql单表备份数据

pgsql单表备份

2025-03-05 19:07:03 999

原创 【多线程】synchronized关键字详解

synchronized原理描述

2025-03-05 19:05:54 508

原创 【多线程】线程池详解

线程池的执行原理

2025-03-05 19:03:37 774

原创 【多线程】CopyOnWriteList详解

JDK1.5之前想要并发使用官方提供的线程安全的List只能选择Vector,但是Vector类中增删改查等方法都加了关键字,虽然能够保证同步,但是因为同一个实例多个线程竞争一把锁,导致性能非常低下。JDK1.5之后引入的JUC包中提供了一个集合对象,该对象是一个线程安全的对象,并且不想Vector类一样一把大锁,在并发读写上效率高出一大截。

2025-03-05 19:02:00 870

jdee-cedet-elib文件

jdee-cedet-elib文件压缩包,配置EMACS必用的文件配置

2018-05-19

空空如也

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

TA关注的人

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