JVM 体系结构

JVM 体系结构分为三部分:

1. 类加载器(ClassLoader):用于装载 .class 文件

2. 执行引擎:用于执行字节码,或者执行本地方法

3. 运行时数据区:包括方法区、堆、Java 栈、PC 寄存器、本地方法栈

程序计数器

占用很小的内存空间,可以看做是当前线程所执行的字节码的行号指示器。

JVM 的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个时刻一个处理器(或多个处理器的一个内核)只会执行一个条线程的指令。程序计数器用于在线程切换后为了恢复在正确执行的位置(正在执行的字节码指令的地址)。

每个线程都需要一个独立的程序计数器,它的生周期与当前线程相同。

虚拟机栈

JVM 栈是线程私有的,每个线程创建的同时都会创建 JVM 栈,JVM 栈是以栈帧为数据单元。

栈帧中存放着局部变量表(Java 中定义的八种基本类型:boolean、char、byte、short、int、long、float、double 和引用类型 —— 一个指向堆上的地址)、返回地址以及操作数栈。

每一个方法被调用直至执行完成的过程,就是对于的一个栈帧在虚拟机栈中从入栈到出栈的过程。

每个线程都有一个独立的栈,生命周期与当前线程相同。

This chapter requires login to view full content. You are viewing a preview.

Login to View Full Content

Course Curriculum

3

框架与 I/O:Spring、Netty 与 Web 容器

理解 Spring Boot 自动装配、AOP 与事务原理,掌握 Netty Reactor 模型及 Tomcat 连接处理机制,构建高内聚、易扩展的应用服务层。
4

高性能中间件:消息、缓存与存储

熟练运用 MySQL 索引/事务、Redis 缓存策略、Kafka/RocketMQ 消息可靠性,以及 ZooKeeper 分布式协调,搭建稳定、解耦的分布式数据底座。
6

云原生:容器化、可观测性与工程效能

通过 Docker/K8s 实现弹性部署,集成 Metrics/Logs/Traces 构建可观测体系,推动 DevOps 与自动化,让架构在云上持续交付与进化。