首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
java
David爱编程
创建于2024-01-04
订阅专栏
java基础知识
等 4 人订阅
共38篇文章
创建于2024-01-04
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
锁升级机制全解析:偏向锁、轻量级锁、重量级锁的秘密
在 HotSpot JVM 中,synchronized 并不是一开始就进入重量级锁。为了提升性能,JVM 设计了 锁升级机制:偏向锁 → 轻量级锁 → 重量级锁。本文将带你深入理解三种锁的特点。
synchronized 的可重入性:避免死锁的隐藏武器
synchronized关键字具备可重入性,同一线程在持有锁的情况下,可以再次获取同一把锁而不会阻塞。本文将从概念、代码示例、JVM实现机制和工程实践四个方面,深入解析synchronized可重入性
对象锁 vs 类锁:Java 并发中的隐形对决
在 Java 并发编程中,synchronized 既可以作用于对象实例(对象锁),也可以作用于类对象(类锁)。很多开发者容易混淆二者,导致锁使用不当。本文深入解析对象锁与类锁的区别、适用场景。
synchronized 全解析:从用法到底层原理的全面剖析
本文将系统介绍 synchronized 的三种使用方式,以及其在JVM层面的实现机制(对象头、锁升级、monitorenter/monitorexit指令),带你从应用到原理全面理解这一核心同步工具
高并发业务场景全盘点:电商、支付、IM、推荐系统背后的技术挑战
高并发场景几乎无处不在:电商大促、支付秒杀、IM 消息、推荐系统等。本文盘点典型高并发业务场景,分析其共性与差异,揭示背后架构设计的核心挑战与解决思路。
并发编程常见 Bug 类型全解析:分类与典型案例
并发编程的Bug往往隐蔽且难以复现,常常只在高并发场景下才暴露。本文系统梳理并发编程中常见的 Bug 类型,包括原子性、可见性、有序性问题,以及死锁、活锁、资源竞争等典型陷阱,结合实际案例深入解析。
多核 CPU 下的缓存一致性问题:隐藏的性能陷阱与解决方案
在多核CPU中,每个核心都有自己的高速缓存,如何保证各核心间缓存数据的一致性,是并发编程必须面对的难题。本文将深入解析缓存一致性问题的成因、典型场景、硬件协议(MESI等)以及对Java程序员的启示。
可见性问题的真实案例:为什么线程看不到最新的值?
摘要 可见性问题是多线程并发中最隐蔽的 Bug 之一:线程对共享变量的修改无法被其他线程及时感知。本文通过真实案例展示问题成因,剖析底层机制,并给出解决方案,帮助你避免“明明赋值了却没生效”的陷阱。
volatile 关键字详解:轻量级同步工具的边界与误区
摘要 volatile 是 JMM 中最轻量级的同步手段,能保证变量的可见性和有序性,却无法保证原子性。本文通过全景解析、典型案例与常见误区,帮助你彻底理解 volatile 的底层原理与应用场景。
指令重排与内存屏障:并发语义的隐形守护者
指令重排是编译器和CPU的优化手段,却可能导致并发程序逻辑混乱。内存屏障作为底层约束工具,保证了happens-before规则的落地。本文系统解析指令重排的类型、风险及内存屏障的工作机制。
happens-before 规则详解:JMM 中的有序性保障
在 Java 并发编程中,很多开发者在调试时会发现:代码看起来顺序正确,但运行结果却出乎意料。根源就在于 指令重排 和 内存可见性。
Java 内存模型(JMM)全景图:并发世界的底层基石
Java 内存模型(JMM)是理解并发编程的核心基础。它定义了线程之间如何通过内存交互、JVM 如何处理指令重排、编译器和CPU 如何影响执行结果。本文将以全景图的方式,系统梳理 JMM 的关键概念。
Java 守护线程 vs 用户线程:一文彻底讲透区别与应用
本文深入解析守护线程与用户线程的区别,结合 JVM 生命周期、应用场景与示例代码,帮助开发者全面掌握两者的用法与适用场景。
并发编程三大特性全解析:原子性、可见性、有序性,一文讲透!
本文深入解析并发编程三大特性——原子性、可见性和有序性,结合 Java 内存模型、示例代码和常见面试题,帮助开发者全面理解并发编程的核心基础。
为什么线程不是越多越好?一文讲透上下文切换成本
本文深入解析线程上下文切换的原理与开销,结合操作系统调度机制说明为何线程并非越多越好,并提供优化思路,帮助开发者理解并发编程的真正瓶颈。
线程调度策略详解:时间片轮转 vs 优先级机制,面试常考!
本文解析线程调度策略中的时间片轮转与优先级机制,结合 JVM 与操作系统原理,说明两者对线程执行的影响,并通过示例展示实际效果。
搞懂这张图,线程生命周期彻底通透了
本文梳理了 Java 线程生命周期,从 NEW 到 TERMINATED,结合状态图与代码示例解析状态转换,并对比操作系统与 Java 视角,助你快速掌握并发核心知识。
Java 创建线程的4种姿势,哪种才是企业级项目的最佳实践?
Java 提供多种方式创建线程:继承 Thread、实现 Runnable、实现 Callable、使用线程池。本文对比四种方式的原理、优缺点与使用场景,并结合示例代码总结工程实践中的最佳选择。
进程 vs 线程到底差在哪?一文吃透操作系统视角与 Java 视角的关键差异
从操作系统到 Java 虚拟机,进程是资源边界,线程是调度单元。文中对比地址空间、调度、上下文切换、通信方式与崩溃影响,并结合 JVM 内存结构、Java 线程状态与同步机制,给出选型准则与实战示例。
为什么必须学并发编程?一文带你看懂从单线程到多线程的演进史
在高并发已成常态的今天,单线程已难以满足业务需求。本文带你从单线程到多进程,再到多线程的演进过程,理解为什么必须掌握并发编程,以及它带来的性能提升与挑战。
下一页