必须承认的是, 在低停顿收集器领域, CMS 是一个不够成熟的产品, 毕竟它推出的时间太早, 在架构设计上就输给了它的后辈们, jdk 14 甚至直接废弃了这个曾经影响一个时代的收集器先驱; 但是在 jdk 1.8 依旧是生产主力的今天, CMS 在江湖上仍然有它的一席之地, 只要我们还在用 G1 尚未臻至完美的 jdk 1.8, CMS 就是一个永远绕不开的技术话题;
希尔的博客
兰之猗猗,扬扬其香。不采而佩,于兰何伤?
-
-
dubbo provider 构建及调用全链路梳理
我画了一张大图来展示 dubbo provider 端: 从提供者的服务构建, 到消费者的网络请求调用进来接受框架处理的全部流程;
本文应该可以比较直观形象得展示 dubbo provider 的实现原理; -
中国装甲车辆分类
中国的装甲车辆分类存在两种标准, 如不加以整理总结, 很容易被各种五花八门的命名绕晕;
本文详细梳理一下两种命名体系下的中国装甲车辆命名规范; -
git stash 使用总结
我们开发过程中可能会遇到同一个项目有多个分支在并行开发, 在开发其中一个分支的时候, 另一个分支突然需要做点什么事情; 如果此时代码刚写了一半, 提交也不合适, 撤销也不舍得, 没有类似 git stash 的工具就显得很尴尬; git stash 正是用来解决此类问题的有效解决方案; git stash 灵活的堆栈风格及列表风格的命令, 让我们处理分支间并行跳跃式开发变得游刃有余;
-
kafka producer 核心架构梳理
我画了一张大图来展示 kafka producer 发送消息的整个链路, 其中对消息提交、驻留、压缩再到使用 NIO 发送消息的整个过程做了详细拆解梳理;
-
BeanFactory 浅析
ApplicationContext 和 BeanFactory 是一对默契的搭档:
— ApplicationContext 负责翻译用户需求 (将目标 spring 配置转换为 BeanDefinition), BeanFactory 负责实现需求 (根据 BeanDefinition 的需求描述生产具体的 spring bean);
— ApplicationContext 像个经理对外提供服务 (getBean(name) 方法), 底层依赖 BeanFactory 这个打工人真正干活 (createBean(name, mbd, args) 方法);
可见 BeanFactory 是整个 spring 框架的中流砥柱、技术骨干, 因此 BeanFactory 是 spring 学习过程中最重要的知识点之一; -
kafka 的 KRaft 模式
kafka 终于在 2021 年 4 月发布了堪称里程碑式版本的 2.8 release, 重磅推出了后 zookeeper 时代的 KRaft 模式;
kafka 社区苦 zookeeper 久已, 此次 KRaft 面试大快人心, 本文将总结一下 KRaft 取代 zookeeper 的原因以及其性能提升情况; -
json schema 简单例子
json schema 定义了 json 内容的格式及约束, 是 API 管理平台生成 API 文档的重要依据;
-
jvm 内存分配原理
jvm 的内存分配与垃圾回收, 是 java 自动内存管理的一体两面, 我们不光需要了解垃圾回收的原理, 也需要对内存分配有对应的了解;
-
mybatis-plus 实践
mybatis-plus 对原生 mybatis 做了扩展增强而不改变任何 mybatis 的原有逻辑, 安全可靠的同时极大降低了实体映射的代码量及配置量, 提升了程序员的工程效率!