标签:Java

共 83 篇文章

Java LocalDateTime与ZonedDateTime在跨时区计算中的陷阱

Java LocalDateTime与ZonedDateTime在跨时区计算中的陷阱 在Java 8引入新的日期时间API后,LocalDateTime和ZonedDateTime

# Java # LocalDateTime # ZonedDateTime
2026-06-10 117 0

Javaequals被重写后hashCode不同步导致HashMap查询异常

Java equals 被重写后 hashCode 不同步导致 HashMap 查询异常 当我们将一个自定义对象作为 HashMap 的键(Key)时,如果只重写了 equals

# Java # HashMap # equals
2026-06-08 108 0

Java的Optional类与空指针异常防御

Java的Optional类与空指针异常防御 空指针异常(NullPointerException,简称 NPE)是 Java 程序员最熟悉的“老朋友”。当一个方法返回 null,

# Java # Optional类 # 空指针异常
2026-06-01 114 0

Java StampedLock的乐观读失败后转换为悲观读锁

Java StampedLock的乐观读失败后转换为悲观读锁 Java 并发包中的 StampedLock 提供了一种乐观读机制,通常比标准的 ReentrantReadWrite

# Java # 并发编程 # 乐观读
2026-05-17 181 0

Java CompletableFuture.thenCompose与thenApply的链式区别

Java CompletableFuture.thenCompose与thenCompose的链式区别 在编写异步 Java 代码时,CompletableFuture 是处理多阶

# Java # 异步编程 # thenApply
2026-05-16 161 0

Java ThreadPoolExecutor的keepAliveTime与核心线程回收

Java ThreadPoolExecutor的keepAliveTime与核心线程回收 Java线程池 ThreadPoolExecutor 通过控制线程数量来平衡性能与资源消耗

# Java # 线程池 # 核心线程回收
2026-05-16 217 0

Java Semaphore信号量实现限流与资源池控制

Java Semaphore信号量实现限流与资源池控制 Java并发编程中,Semaphore(信号量)是一种核心同步工具,用于控制同时访问特定资源的线程数量。它通过维护一组“许可

# Java # 并发编程 # 信号量
2026-05-15 155 0

Java CompletableFuture组合异步操作的超时处理策略

Java CompletableFuture组合异步操作的超时处理策略 在异步编程中,单个任务的超时控制相对简单,但多个 CompletableFuture 组合操作(如并行执行、

# Java # 异步编程 # 超时处理
2026-05-14 186 0

Java Files.walk递归遍历文件目录树的内存风险

Java Files.walk递归遍历文件目录树的内存风险 在Java NIO.2中,Files.walk方法提供了一个非常简洁的API来递归遍历文件目录树。然而,对于大型或深度嵌

# Java # Files.walk # 内存风险
2026-05-11 171 0

Java ScopedValue替代ThreadLocal的虚拟线程友好方案

Java ScopedValue替代ThreadLocal的虚拟线程友好方案 在Java中,ThreadLocal 曾是线程隔离数据的常用工具,用于存储用户会话、数据库连接等上下文

# Java # 虚拟线程 # 作用域值
2026-05-10 155 0

Java Synchronized锁的四种状态与升级降级过程

Java Synchronized锁的四种状态与升级降级过程 Java中的synchronized关键字用于实现线程同步,其底层通过锁机制保证线程安全。锁的状态会根据竞争情况动态变

# Java # 同步锁 # 四种状态
2026-05-10 161 0

Java CAS操作的ABA问题与AtomicStampedReference的解决

Java CAS操作的ABA问题与AtomicStampedReference的解决 Java中的CAS(CompareAndSwap)是一种无锁算法,用于实现多线程环境下的原子操

# Java # CAS # ABA问题
2026-05-09 185 0

Java Thread.sleep与Object.wait的锁释放行为差异

Java Thread.sleep与Object.wait的锁释放行为差异 Java 多线程编程中,控制线程暂停的两种最常见方式是 Thread.sleep 和 Object.wa

# Java # 多线程 # 并发编程
2026-05-06 169 0

Java Thread.interrupt()方法对阻塞IO的局限性

Java Thread.interrupt方法对阻塞IO的局限性 在 Java 多线程编程中,开发者习惯使用 Thread.interrupt 方法来请求停止线程。对于正在执行计算

# Java # 多线程 # 线程中断
2026-05-06 188 0

Java线程池ThreadPoolExecutor的饱和策略源码解读

Java线程池ThreadPoolExecutor的饱和策略源码解读 在使用 ThreadPoolExecutor 时,当线程池的核心线程数已满、任务队列也已满,并且线程数达到最大

# Java # 线程池 # 饱和策略
2026-05-05 146 0

为什么说ArrayList线程不安全?并发修改异常复现与分析

为什么说ArrayList线程不安全?并发修改异常复现与分析 1. 复现并发修改异常 ArrayList 是 Java 开发中最常用的集合之一,但它并不是线程安全的。当多个线程同时

# ArrayList # 线程安全 # 并发修改异常
2026-05-05 176 0

Java Phaser分阶段同步屏障替代CyclicBarrier的优势

Java Phaser分阶段同步屏障替代CyclicBarrier的优势 Java并发包(J.U.C)中的 Phaser 是一个功能强大的同步工具,它解决了 CyclicBarri

# Java # 并发编程 # Phaser
2026-05-04 162 0

Java HashMap的负载因子为什么是0.75

Java HashMap的负载因子为什么是0.75 Java 中的 HashMap 是使用最频繁的集合之一,其性能核心在于哈希桶数组与链表/红黑树的配合。在 HashMap 的构造

# Java # HashMap # 负载因子
2026-05-04 166 0

Java Deque双端队列实现栈与队列的最佳实践

Java Deque双端队列实现栈与队列的最佳实践 Java中的 Deque Double Ended Queue 接口是一种支持在两端插入和删除元素的线性集合。它不仅实现了标准的

# Java # 数据结构 # 双端队列
2026-05-04 161 0

Java Thread.interrupted()与isInterrupted()的状态清除差异

Java Thread.interrupted与isInterrupted的状态清除差异 处理 Java 多线程中断时,混淆 Thread.interrupted 和 isInte

# Java # 多线程 # 线程中断
2026-05-02 181 0