- 博客(15)
- 资源 (10)
- 收藏
- 关注
原创 ArrayList和 LinkedList的底层存储结构有何差异?
维度数据结构动态数组(连续内存)双向链表(离散节点)内存连续性✅ 连续❌ 非连续节点结构仅存储元素元素 + 双指针内存占用低(无额外指针)高(每个节点含指针开销)随机访问模式直接计算地址(O(1))顺序遍历(O(n))💎 设计哲学 以空间换时间,牺牲扩容成本换取高效随机访问;以指针换灵活性,牺牲连续性和内存换取动态增删的高效。实际选择需结合具体操作频率(读/写、头/尾/中间)和数据规模,例如高并发队列场景中,
2025-08-11 15:23:26
605
原创 final关键字修饰变量、方法和类时分别起什么作用?
修饰对象核心作用是否可修改典型场景变量值/引用仅赋值一次基本类型值不可变;引用类型地址不可变常量配置(如方法禁止子类重写可继承,不可重写核心算法、框架关键逻辑类禁止继承不可有子类不可变类(如String。
2025-08-11 15:13:57
1053
原创 Java 基本数据类型有哪些?引用类型和基本类型的区别?
Java 的数据类型分为基本数据类型(Primitive Data Types)和引用数据类型(Reference Data Types),两者在存储方式、行为特性和使用场景上有本质区别。以下是详细说明:基本数据类型是 Java 内置的简单数据类型,直接存储数据值,分为四类:引用类型指向对象的内存地址(引用),而非直接存储数据。包括:示例:⚖️ 三、基本类型 vs 引用类型的核心区别 特性 基本类型 引用类型
2025-08-11 15:11:52
696
原创 方法句柄(MethodHandle)与反射的性能差异根源是什么?
方法句柄()与反射(Reflection)在 Java 中均支持动态方法调用,但性能差异显著。
2025-08-08 16:18:38
694
原创 Java 21虚拟线程(Virtual Thread)的Carrier Thread调度机制是什么?
Carrier Thread 调度机制通过 M:N 映射模型(大量虚拟线程 → 少量载体线程)和 协作式挂起/恢复,解决了传统线程在高并发场景的资源瓶颈。阻塞操作零成本:载体线程即时释放,避免资源浪费;自动化调度:JVM 管理虚拟线程生命周期,开发者仅需替换线程池(如兼容性与调优灵活:支持与传统 API 集成,并通过参数优化适配不同硬件场景。未来随着同步机制的进一步优化(如JEP 491。
2025-08-08 16:16:57
1073
原创 偏向锁(Biased Locking)在Java 15后被默认禁用,如何通过-XX:+UseBiasedLocking启用?
通过可临时启用偏向锁,但需严格限制于单线程主导场景,并辅以性能监控。长期而言,遵循 JVM 默认配置并优化同步策略(无锁/显式锁)是更可持续的方案。
2025-08-08 16:15:42
524
原创 如何通过-Djava.util.concurrent.ForkJoinPool.common.parallelism优化默认线程池?
评估需求:区分任务是 CPU 密集型还是 IO 密集型。设置参数:CPU 密集型 → 并行度 = 物理核心数;IO 密集型 → 并行度 = 核心数 × 2(需压测验证)。容器环境:根据 cgroup 的 CPU 配额动态计算并行度。关键业务隔离:避免使用公共池,改用自定义或搭配独立线程池。📌 性能验证工具;(高窃取次数说明负载均衡有效)。CPU核心数。
2025-08-08 16:14:33
650
原创 如何通过Saga事务模式保证分布式事务的最终一致性?
Saga模式是一种通过实现分布式系统最终一致性的设计模式,特别适用于跨微服务的(如电商下单、旅行预订)。其核心原理是将全局事务拆解为多个本地事务,通过正向操作链和逆向补偿链确保数据最终一致。
2025-08-08 16:13:02
934
原创 Redis分布式锁在集群故障切换时如何避免锁失效?
在Redis集群环境中,主从切换时可能因异步复制导致分布式锁失效(如主节点写入锁后未同步即宕机,新主节点无锁数据),破坏互斥性。
2025-08-08 15:45:44
806
原创 逃逸分析如何实现栈上分配?
逃逸分析通过静态作用域判定,将不逃逸对象分配至栈帧,结合标量替换彻底消除对象结构,实现零GC开销的内存管理。其性能优势在高频率创建短生命周期对象的场景(如循环体内临时对象)尤为显著。然而,实际效果受对象大小、代码模式及JVM配置制约。开发者可通过编写局部化代码(避免跨方法/线程暴露对象)最大化利用此优化,并通过日志验证分析结果。阶段核心任务实现机制逃逸判定分析对象是否逃逸出方法或线程引用传播分析、上下文敏感分析、线程逃逸检测。
2025-08-08 15:33:30
916
原创 G1收集器的混合GC(Mixed GC)触发条件是什么?
共同作用的结果,旨在通过增量回收兼顾低停顿与老年代垃圾清理。合理调优IHOP、停顿目标及回收策略,可显著减少Full GC风险,尤其适用于大堆内存(≥6GB)的低延迟场景。Mixed GC的触发是。
2025-08-08 15:30:09
866
原创 StampedLock的乐观读锁在哪些场景下优于ReentrantReadWriteLock?如何避免ABA问题?
StampedLock 的乐观读锁(Optimistic Read)在特定高并发场景下相比有显著优势,但其无锁机制可能引发 ABA 问题。
2025-08-08 15:26:35
485
原创 如何通过jstack定位线程池中因任务堆积导致的线程饥饿问题?需分析哪些关键指标?
通过jstack定位线程池因任务堆积导致的线程饥饿问题,需结合线程状态、锁信息、任务队列及线程行为进行综合分析。
2025-08-08 15:24:37
926
1
如何通过-Djava.util.concurrent.ForkJoinPool.common优化默认线程池?
2025-08-08
Java 21虚拟线程(Virtual Thread)的Carrier Thread调度机制是什么?
2025-08-08
偏向锁(Biased Locking)在Java 15后被默认禁用,如何通过-XX:+UseBiasedLocking启用?
2025-08-08
StampedLock的乐观读锁在哪些场景下优于ReentrantReadWriteLock?如何避免ABA问题?
2025-08-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅