听到微笑的博客

  • 安利一个好用的IDEA插件 object-helper-plugin
    安利一个好用的IDEA插件 object-helper-plugin
    | 其他
    评论 0 | 点赞 0 | 预览 353
    一. 插件背景object-helper 插件是一个日常开发工具集插件,提供丰富的功能,最开始是基于 GenerateO2O 插件开发而来,它提供了对象之间值拷贝代码自动生成的能力,就像这样:因为该插件很早之前就停止维护了,新版本IDEA无法使用该插件,所以自己参考它的交互模式,基于新版本API开发
  • Java21 GA新特性-虚拟线程详解(转)
    Java21 GA新特性-虚拟线程详解(转)
    | 并发编程
    评论 0 | 点赞 0 | 预览 140
    JDK中的每个java.lang.Thread实例也就是每个平台线程实例都在底层操作系统线程上运行Java代码,并且平台线程在运行代码的整个生命周期内捕获系统线程。可以得出一个结论,平台线程与底层系统线程是一一对应的,平台线程实例本质是由系统内核的线程调度程序进行调度,并且平台线程的总数量受限于系统线程的总数量。
  • RocketMQ主从同步原理
    RocketMQ主从同步原理
    | 源码分析
    评论 0 | 点赞 0 | 预览 42
    主从同步这个概念相信大家在平时的工作中,多少都会听到。其目的主要是用于做一备份类操作,以及一些读写分离场景。比如我们常用的关系型数据库mysql,就有主从同步功能在。
  • RocketMQ事务消息源码解析
    RocketMQ事务消息源码解析
    | 源码分析
    评论 0 | 点赞 0 | 预览 27
    RocketMQ提供了事务消息的功能,采用**2PC**(两阶段协议)+补偿机制(事务回查)的分布式事务功能,通过这种方式能达到分布式事务的最终一致。
  • RocketMQ消息过滤机制源码详解
    RocketMQ消息过滤机制源码详解
    | 源码分析
    评论 0 | 点赞 0 | 预览 20
    如果是 TAG 过滤。broker要先根据ConsumeQueue 中 Tag HashCode过滤一次,消费者在根据 Tag 值过滤一次。因为 ConsumeQueue 为了便于检索,文件中每一个条目都是定长20字节,所以条目在最后八个字节存储的是消息 Tag 的 HashCode,而不是hash值。这样broker在拉取磁盘中的消息时,只需要对比 ConsumeQueue中 的Tag HashCode,而不需要解析 CommitLog 中的 Tag 值,如果发生Hash冲突,则交给消费者客户端过滤消息中的Tag值。
  • 详解RocketMQ消息存储原理
    详解RocketMQ消息存储原理
    | 源码分析
    评论 0 | 点赞 0 | 预览 86
  • MyBatisPlus + ShardingJDBC 批量插入不返回主键ID
    MyBatisPlus + ShardingJDBC 批量插入不返回主键ID
    | 其他
    评论 0 | 点赞 0 | 预览 429
  • JVM Sandbox入门详解
    JVM Sandbox入门详解
    | Java
    评论 1 | 点赞 0 | 预览 111
    一. 概述在日常开发中,经常会接触到面向AOP编程的思想,我们通常会使用Spring AOP来做统一的权限认证、异常捕获返回、日志记录等工作。之所以使用Spring AOP来实现上述功能,是因为这些场景本质上来说都是与业务场景挂钩的,但是具有一定的抽象程度,并且绝大多数业务逻辑类都已经被Spring
  •  Java应用的优雅停机
    Java应用的优雅停机
    | Java
    评论 0 | 点赞 0 | 预览 651
  • 工作面试老大难-MySQL中的锁类型
    工作面试老大难-MySQL中的锁类型
    | 数据库
    评论 0 | 点赞 0 | 预览 199
    MySQL 是支持ACID特性的数据库。我们都知道”C”代表Consistent,当不同事务操作同一行记录时,为了保证一致性,需要对记录加锁。在MySQL 中,不同的引擎下的锁行为也会不同,本文将重点介绍 MySQL InnoDB引擎中常见的锁。一. 准备CREATE TABLE `user
  • CentOS搭建Jellyfin家庭影音服务器
    CentOS搭建Jellyfin家庭影音服务器
    | 其他
    评论 0 | 点赞 0 | 预览 577
    一. 安装Jellyfin之前介绍过Docker安装jellyfin,但Docker安装方式存在一些限制,于是一起学习一下用RPM包在CentOS 7下安装方法。先安装需要的依赖:yum install libicu fontconfig -y COPY下载CentOS最新可用RPM包进行安装:最新
  • 动态类型语言 VS 静态类型语言
    动态类型语言 VS 静态类型语言
    | 其他
    评论 0 | 点赞 0 | 预览 124
    一. 运行期动态修改类型结构动态编程语言是高级编程语言的一个类别,在计算机科学领域已被广泛应用。它是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言目前非常具有活力。众所周知的ECMAScript(JavaScript)便是
  • Arthas源码分析
    Arthas源码分析
    | 源码分析
    评论 0 | 点赞 0 | 预览 783
    一. 前言Arthas 相信大家已经不陌生了,肯定用过太多次了,平时说到 Arthas 的时候都知道是基于Java Agent的,那么他具体是怎么实现呢,今天就一起来看看Arthas 的源码。首先 Arthas 是在 GitHub 开源的,我们可以直接去 GitHub 上获取源码:Arthas。本文基于 Arthas
  • Dubbo SPI扩展机制源码详解(基于2.7.10)
    Dubbo SPI扩展机制源码详解(基于2.7.10)
    | Dubbo
    评论 0 | 点赞 0 | 预览 156
    一. 概述本文主要分享 Dubbo 的拓展机制 SPI。想要理解 Dubbo ,理解 Dubbo SPI 是非常必须的。在 Dubbo 中,提供了大量的拓展点,基于 Dubbo SPI 机制加载Dubbo SPI官方文档:Dubbo SPI 概述 | Apache Dubbo本文基于 Dubbo 2
  • 详解 XSS 攻击原理
    详解 XSS 攻击原理
    | 其他
    评论 0 | 点赞 0 | 预览 303
  • 计算机算法的本质(转)
    计算机算法的本质(转)
    | 数据结构与算法
    评论 0 | 点赞 0 | 预览 362
    「算法工程师」做的这个「算法」,和「数据结构与算法」中的这个「算法」完全是两码事, 免得⼀些初学同学误解。 对前者来说,重点在数学建模和调参经验,计算机真就只是拿来做计算的工具而已;而后者的重点是计算机思维,需要你能够站在计算机的视角,抽象、化简实际问题,然后用合理的数据结构去解决问题。
  • 超大规模流量热点key读问题解决思路
    超大规模流量热点key读问题解决思路
    | 其他
    评论 0 | 点赞 0 | 预览 250
  • 详解Spring SPI机制
    详解Spring SPI机制
    | 源码分析
    评论 0 | 点赞 0 | 预览 641
    一. 从类加载说起Java中的类加载器负载加载来自文件系统、网络或者其他来源的类文件。jvm的类加载器默认使用的是双亲委派模式。三种默认的类加载器Bootstrap ClassLoader、Extension ClassLoader和System ClassLoader(Application Cl
  • 一文搞懂 Spring Bean 的生命周期
    一文搞懂 Spring Bean 的生命周期
    | 源码分析
    评论 0 | 点赞 0 | 预览 313
    一. 前言在学习Spring框架的IOC、AOP两大功能之前,首先需要了解这两个技术的基础——Bean。在Spring框架中,Bean无处不在,IOC容器管理的对象就是各种各样的Bean。理解Bean的生命周期有助于我们更好的理解和使用Spring框架的IOC功能,也有助于我们理解框架如何初始化、使
  • 详解Spring循环依赖
    详解Spring循环依赖
    | 源码分析
    评论 0 | 点赞 0 | 预览 398
    就是两个或则两个以上的bean互相依赖对方,最终形成闭环。比如“A对象依赖B对象,而B对象也依赖A对象”,或者“A对象依赖B对象,B对象依赖C对象,C对象依赖A对象”