![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java知识
文章平均质量分 91
树哥聊编程
八年研发老兵,搞过架构,带过团队,曾就职于唯品会、SHEIN 等电商公司。擅长用简洁有趣的语言讲解技术,所写 JVM 入门教程全网超 30 万阅读,受到广大网友一致好评。关注我,获取更多有趣又硬核的 Java 技术知识!
展开
-
老掉牙的 synchronized 锁优化,一次给你讲清楚
我们都知道 synchronized 关键字能实现线程安全,但是你知道这背后的原理是什么吗?今天我们就来讲一讲 synchronized 实现线程同步背后的原因,以及相关的锁优化策略吧。synchronized 背后的原理synchronized 关键字经过编译之后,会在同步块的前后分别形成 monitorenter 和 monitorexit 这两个字节码指令,这两个字节码只需要一个指明一个要锁定或解锁的对象。如果 Java 程序中指明了对象参数,那么就用这个对象作为锁。如果没有指定,那么就根据 sync原创 2022-07-05 22:33:13 · 298 阅读 · 0 评论 -
从 CPU 讲起,深入理解 Java 内存模型
Java 内存模型,许多人会错误地理解成 JVM 的内存模型。但实际上,这两者是完全不同的东西。Java 内存模型定义了 Java 语言如何与内存进行交互,具体地说是 Java 语言运行时的变量,如何与我们的硬件内存进行交互的。而 JVM 内存模型,指的是 JVM 内存是如何划分的。Java 内存模型是并发编程的基础,只有对 Java 内存模型理解较为透彻,我们才能避免一些错误地理解。Java 中一些高级的特性,也建立在 Java 内存模型的基础上,例如:volatile 关键字。为了让大家能明白 Java原创 2022-07-05 22:24:55 · 79 阅读 · 0 评论