刷新
Java学习随笔:反射为什么既强大又危险(2026-10-11)

博主头像 刚开始学 Java 的时候,我以为方法调用只能靠“对象点方法”这一种方式。后来接触到框架,才发现很多代码里根本没有直接调用,而是先拿到类名,再通过反射去创建对象、调用方法。那一刻我才明白,原来 Java 程序可以在运行时“看见自己”。 反射最基础的能力是拿到一个类的信息。通过 Class 对象,我们 ...

Java学习随笔:浅拷贝和深拷贝到底差在哪(2026-10-10)

博主头像 刚学 Java 的时候,我以为对象赋值就是把内容复制一份。写一句 a 等于 b,就觉得两边从此各管各的。直到有一次修改了其中一个对象的字段,另一个对象也跟着变了,我才意识到:这里复制的其实是引用,两个变量指向的是同一块内存。 要理解拷贝,先要分清“引用”和“对象”。对象变量里存的只是一个地址,赋值时 ...

8年Java老兵转型AI Agent:90%的人挂在同一个坑,根本不用学Python!(万字实战复盘,建议收藏)

博主头像 8年Java后端老兵实战复盘!打破“转AI就是学Python调API”的误区,详解Java工程师转型AI Agent的核心认知升级与能力补全方案。聚焦确定性工程架构适配LLM概率性输出核心思路,拆解可复用Java工程能力、必备AI增量技能,附赠Spring AI、LangChain4j落地代码、生产... ...

Java学习随笔:HashMap 扩容时到底发生了什么(2026-10-09)

博主头像 HashMap 是我平时用得最多的集合之一,但很长一段时间里,我对它的理解只停留在“键值对、查询快”这一层。直到认真看了它的扩容逻辑,我才发现这个看似简单的容器背后有不少精心的设计。 先说容量。HashMap 的容量并不是随便一个整数,而是始终保持为 2 的幂。这样做的原因藏在它定位数组下标的方式里 ...

keycloak~安全防护-暴力检查的支持

博主头像 结合您提供的 Keycloak 14.0.0 截图,我先为您逐一解释这些安全防御(Brute Force Detection)配置项的作用,然后针对您的需求给出具体的配置方案。 一、配置项作用详解 Enabled (启用):ON 开启或关闭暴力破解检测功能。 Permanent Lockout (永 ...

Java学习随笔:String 为什么被设计成不可变(2026-10-08)

博主头像 刚开始学 Java 时,我知道 String 是不可变的,但并不知道“不可变”到底意味着什么。真正让我有感觉的,是一次给字符串拼接之后重新赋值,原来的变量看起来“变了”。其实变的只是引用,字符串对象本身从头到尾都没有被修改过。理解这一点,是理解 String 很多特性的起点。 String 内部用一 ...

我劝你别再无脑用 MySQL:PostgreSQL 这 5 个底层能力,正在拉开架构师差距

博主头像 深挖MySQL与PG核心底层差异,不盲目站队!拆解两者架构、MVCC机制、索引体系核心区别,详解PG的JSONB、GIN索引、递归CTE等独家实战能力。盘点6个MySQL迁PG生产级大坑及解决方案,搭配Java实战代码,提供可落地的数据库选型指南,适配面试、架构选型、业务迁移场景。 ...

Java学习随笔:自动拆装箱藏着哪些坑(2026-10-07)

博主头像 写 Java 的时候,基本类型和包装类型之间的转换看起来是最不需要动脑子的部分:需要一个 int,就给它一个 Integer;需要一个 Integer,就丢一个 int 过去,编译器会默默帮你转换。这种自动转换就是自动装箱和自动拆箱。平时用起来很顺手,可一旦放进循环、放进判等、放进集合,它就可能变成 ...

Node.js和JVM在任务模型和性能方面的差异

博主头像 Node.js vs JVM:任务模型与性能差异全解析 TL;DR——Node.js 和 JVM 代表了两种截然不同的并发哲学。Node.js 以单线程事件循环为核心,在 I/O 密集型场景下以极低的内存开销和快速启动见长,但在 CPU 密集型任务中事件循环会成为硬瓶颈。JVM 传统上依赖平台线程的 ...

RabbitMQ、Kafka、RocketMQ 三选一?这篇把消息队列选型彻底讲透了

博主头像 MQ 面试高频干货!RabbitMQ、Kafka、RocketMQ 选型深度解析,摒弃单纯参数背诵,基于业务场景推导选型方案。横向对比三大 MQ 核心能力,附带事务消息、幂等消费、消息零丢失可直接落地 Java 代码。拆解消息丢失、积压、重复消费等生产难题,附面试应答模板,掌握完整 MQ 选型方法论... ...

Elasticsearch从0-1部署成功实战

博主头像 告别简单Docker一键部署!本文基于生产3节点ES集群实战,完整拆解架构选型、系统调优、集群部署、索引设计、数据同步等全流程。分享JVM堆内存黄金配置、索引零停机切换、Canal高可靠数据同步核心技巧,汇总脑裂、OOM、磁盘只读等6大生产高频坑点及解决方案,附带标准化SOP,适配面试刷题与生产落地... ...

100亿订单号如何去重

博主头像 拆解100亿订单号高并发去重实战方案!对比HashSet、MySQL、Redis Set等方案优劣,敲定分布式布隆过滤器+数据库兜底最优架构。通过分片优化解决Redis大key问题,搭配多线程批量加载、Redis管道提速,百亿数据4小时完成冷启动。支持10万+QPS、延迟<10ms,精准控制0.01... ...

ChromaPanel vs 其他 React 颜色选择器对比:功能、包体积、可访问性等

选择一个 React 颜色选择器,听起来很简单,直到你开始认真考虑自己的应用到底需要什么。 也许你只需要一个很小的 HEX 颜色选择器。 也许你需要 RGB 和 HSL 控制、预设的调色板、一个吸管工具、从图片中取色、渐变功能、可访问性、表单支持,以及 OKLCH 等现代 CSS 颜色。 这些是完全 ...

Java标签跳转:一个鲜为人知但却很实用的小技巧

博主头像 在C系风格的代码中,标签是一个容易掌握但是却很难熟练使用的特性,容易主要体现在其规则简单,配合goto很容易就能实现一些比较复杂的逻辑。很难熟练使用主要是体现在对于复杂场景下,不好对流程把控,调试,也不好维护,是典型的面向过程的特性。前两天在看jdk源码的时候,无意中看到线程池中这个方法的源码: 1 ...

123···25>