上一页 1 2 3 4 5 6 7 ··· 26 下一页

2025年11月10日

Java 中 double 的精度问题,以及为什么 BigDecimal 没有这个问题

摘要: Java 中 double 的精度问题,以及为什么 BigDecimal 没有这个问题 当你在 Java 中写出: System.out.println(0.1 + 0.2); // 0.30000000000000004 是不是很诧异?这不是 Java 的“bug”,而是计算机数值表示方式导致的。 阅读全文

posted @ 2025-11-10 03:40 滚动的蛋 阅读(172) 评论(0) 推荐(0)

synchronized` 的“锁升级/路径解析

摘要: synchronized` 的“锁升级/路径 为什么会升级?什么时候升级?升级后发生了什么?该怎么写代码更高效? 0. 先给一个总图(JDK 17+ 的主线) 无锁 → 轻量级锁(用户态 CAS + 自旋) → 重量级锁(ObjectMonitor,阻塞/唤醒) JDK 15 起“偏向锁”已移除,所 阅读全文

posted @ 2025-11-10 02:46 滚动的蛋 阅读(17) 评论(0) 推荐(0)

什么是锁的可重入性?

摘要: 什么是锁的可重入性? 锁的“可重入性”(reentrancy)指:同一线程在已经获得某把锁的情况下,可以“再次”获得这把锁而不会被自己阻塞。实现上通常会为锁维护“持有线程 + 重入计数(hold count)”:同一线程每 lock()/进入一次同步块,计数+1;每次 unlock()/退出一次,计 阅读全文

posted @ 2025-11-10 02:25 滚动的蛋 阅读(58) 评论(0) 推荐(0)

CountDownLatch 与 CyclicBarrier 区别深度解析

摘要: CountDownLatch 与 CyclicBarrier 深度解析:并发编程中的“闸门”与“集合点” 在 Java 并发工具包 java.util.concurrent 中,CountDownLatch 与 CyclicBarrier 是最常用的两种线程同步辅助类。它们像是并发世界的两种“交通信 阅读全文

posted @ 2025-11-10 02:14 滚动的蛋 阅读(81) 评论(0) 推荐(0)

2025年3月22日

binary wang 小程序支付SDK packageValue异常

摘要: 1、第一步:后台统一下单成功,参数如下 2、第二步:小程序发起支付使用参数需要注意不能直接使用packageValue,需要用package接受发起支付 function miniPay(params) { //console.log("[Payment] 支付参数:", { params }); 阅读全文

posted @ 2025-03-22 02:50 滚动的蛋 阅读(49) 评论(0) 推荐(0)

2025年3月9日

ThreadLocal 导致内存泄漏的主要原因

摘要: ThreadLocal 导致内存泄漏的主要原因在于其底层数据结构的弱引用(WeakReference)和线程的长生命周期共同作用。 1. ThreadLocal 的存储结构 每个线程(Thread)内部维护了一个 ThreadLocalMap,用于存储该线程的 ThreadLocal 变量。 键(K 阅读全文

posted @ 2025-03-09 02:38 滚动的蛋 阅读(370) 评论(0) 推荐(0)

2025年3月8日

undo log 与 redo log

摘要: 理解数据库事务日志:Undo Log 与 Redo Log 在 MySQL InnoDB 存储引擎中,为了保证数据的原子性、一致性以及持久性,系统设计了两种重要的日志:undo log(撤销日志)和 redo log(重做日志)。它们分别承担着不同的职责,共同保障事务处理的正确性和高可用性。 1. 阅读全文

posted @ 2025-03-08 02:35 滚动的蛋 阅读(184) 评论(0) 推荐(0)

MySQL 数据库隔离级别与幻读现象

摘要: MySQL 中的隔离级别与幻读现象 1. 前言 在使用数据库时,事务(Transaction)是保证数据一致性的重要手段。为了让事务并发执行而尽量减少冲突和数据不一致,SQL 标准定义了四种常见的隔离级别: READ UNCOMMITTED READ COMMITTED REPEATABLE REA 阅读全文

posted @ 2025-03-08 02:30 滚动的蛋 阅读(191) 评论(0) 推荐(0)

2025年2月27日

为什么 `HashMap` 在 Java 8 之后选择使用红黑树,而不是普通的平衡二叉树?

摘要: 为什么 HashMap 在 Java 8 之后选择使用红黑树,而不是普通的平衡二叉树? 在 Java 8 之前,HashMap 采用 数组 + 链表 解决哈希冲突,查询时间复杂度最坏情况下可达 O(n)。Java 8 引入 红黑树(Red-Black Tree) 作为优化方案,使得查询时间复杂度降低 阅读全文

posted @ 2025-02-27 01:01 滚动的蛋 阅读(463) 评论(0) 推荐(0)

2025年2月25日

【BASE】Integer 缓存

摘要: 在 Java 中,Integer 缓存(Integer Cache)是 Java 为了优化小整数对象的创建和使用而引入的机制。它的核心作用是减少 Integer 对象的创建,提高性能和减少内存消耗。 Integer 缓存机制 范围:默认缓存 -128 到 127 之间的整数。 原理:对于这个范围内的 阅读全文

posted @ 2025-02-25 23:35 滚动的蛋 阅读(142) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 ··· 26 下一页

导航