摘要: 5.1 虚拟机栈概述 5.1.1 虚拟机栈出现的背景 由于跨平台的设计,Java 的指令都是根据栈来设计的。不同平台 CPU 架构不同,所以不能设计为基于寄存器 优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令 5.1.2 初步印象 有不少 Java 开发人员一提 阅读全文
posted @ 2026-05-08 14:30 清风含薰 阅读(16) 评论(0) 推荐(0)
摘要: 3.1 运行时数据区 3.1.1 概述 本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段 当我们通过前面的:类 加载 -> 验证 -> 准备 -> 解析 -> 初始化 这几个阶段完成后,就会用到执行引擎对我们的雷进行使用,同时执行引擎将会使用到我们运行时数据区 我们把大厨后面的 阅读全文
posted @ 2026-05-08 08:47 清风含薰 阅读(8) 评论(0) 推荐(0)
摘要: 2.1 内存结构概述 Class 文件 类加载子系统 运行时数据区 方法区 堆 程序计数器 虚拟机栈 本地方法栈 执行引擎 本地方法接口 本地方法库 如果自己想手写一个 Java 虚拟机的话,主要考虑哪些结构呢? 类加载器 执行引擎 2.2 类加载器与类的加载过程 类加载器子系统作用 类加载器子系统 阅读全文
posted @ 2026-04-29 15:53 清风含薰 阅读(6) 评论(0) 推荐(0)
摘要: CompletableFuture "锁"事儿 悲观锁 乐观锁 自旋锁 可重入锁(递归锁) 写锁(独占锁)/读锁(共享锁) 公平锁/非公平锁 死锁 偏向锁 轻量级锁 重量级锁 邮戳锁(票据锁) JMM synchronized 及升级优化 锁的到底是什么 无锁 -> 偏向锁 -> 轻量锁 -> 重量 阅读全文
posted @ 2026-04-27 09:54 清风含薰 阅读(9) 评论(0) 推荐(0)
摘要: 13.1 关于锁的面试题 你知道 Java 里面有哪些锁? 你说你用过读写锁,锁饥饿问题是什么? 有没有比读写锁更快的锁? StampedLock 知道吗?(邮戳锁/票据锁) ReentrantReadWriteLock 有锁降级机制,你知道吗? 13.2 本章路线总纲 无锁 -> 独占锁 -> 读 阅读全文
posted @ 2026-04-27 09:50 清风含薰 阅读(7) 评论(0) 推荐(0)
摘要: 1.1 前言 作为 Java 工程师的你曾被伤害过吗?你是否也遇到过这些问题? 运行着的线上系统突然卡死,系统无法访问,甚至直接 OOM 想解决线上 JVM GC 问题,但却无从下手 新项目上线,对各种JVM参数设置一脸茫然,直接默认吧然后就JJ了 每次面试之前都要重新背一遍JVM的一些原理概念性的 阅读全文
posted @ 2026-04-25 14:47 清风含薰 阅读(11) 评论(0) 推荐(0)
摘要: 12.1 前置知识 公平锁和非公平锁 公平锁:锁被释放以后,先申请的线程先得到锁。性能较差一些,因为公平锁为了保证时间上的绝对顺序,上下文切换更频繁 非公平锁:锁被释放以后,后申请的线程可能会先获取到锁,是随机或者按照其他优先级排序的。性能更好,但可能会导致某些线程永远无法获取到锁 可重入锁 也叫做 阅读全文
posted @ 2026-04-25 08:44 清风含薰 阅读(17) 评论(0) 推荐(0)
摘要: 学习尚硅谷JVM全套教程(详解java虚拟机) 阅读全文
posted @ 2026-04-23 22:22 清风含薰 阅读(6) 评论(0) 推荐(0)
摘要: 11.1 面试题 谈谈你对 synchronized 的理解? synchronized 的锁升级,聊一聊 synchronized 实现原理,monitor 对象什么时候生成的?知道 monitor 的 monitorenter 和 monitorexit 这两个是怎么保证同步的嘛?或者说这两个操 阅读全文
posted @ 2026-04-23 16:38 清风含薰 阅读(12) 评论(0) 推荐(0)
摘要: 10.1 面试题 说一下 JUC,AQS 的大致流程 CAS 自旋锁,是获取不到就一直自旋吗?CAS 和 synchronized 区别在哪里,为什么 CAS 好,具体优势在哪里? synchronized 底层是如何实现的,实现同步的时候用到 CAS 了吗?具体哪里用到了? 对象头存储哪些信息?长 阅读全文
posted @ 2026-04-21 10:57 清风含薰 阅读(9) 评论(0) 推荐(0)