java虚拟机
文章平均质量分 85
java虚拟机
JavaNice哥
Learning is like rowing upstream, not to advance is to drop back
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
6堆(超级重点)
堆针对一个 JVM 进程来说是唯一的,也就是一个进程只有一个 JVM,但是进程包含多个线程,他们是共享同一堆空间的。从内存模型而不是垃圾收集的角度,对 Eden 区域继续进行划分,JVM 为 =每个线程分配了一个私有缓存区域= ,它包含在 Eden 空间内。多线程同时分配内存时,使用 TLAB 可以避免一系列的非线程安全问题,同时还能够提升内存分配的吞吐量,因此我们可以将这种内存分配方式称之为 =快速分配策略=。据我所知所有 OpenJDK 衍生出来的 JVM 都提供了。原创 2024-11-06 16:29:05 · 1178 阅读 · 0 评论 -
6堆(超级重点)
堆针对一个 JVM 进程来说是唯一的,也就是一个进程只有一个 JVM,但是进程包含多个线程,他们是共享同一堆空间的。从内存模型而不是垃圾收集的角度,对 Eden 区域继续进行划分,JVM 为 =每个线程分配了一个私有缓存区域= ,它包含在 Eden 空间内。多线程同时分配内存时,使用 TLAB 可以避免一系列的非线程安全问题,同时还能够提升内存分配的吞吐量,因此我们可以将这种内存分配方式称之为 =快速分配策略=。据我所知所有 OpenJDK 衍生出来的 JVM 都提供了。原创 2024-11-06 16:17:28 · 1132 阅读 · 0 评论 -
6堆(超级重点)
堆针对一个 JVM 进程来说是唯一的,也就是一个进程只有一个 JVM,但是进程包含多个线程,他们是共享同一堆空间的。从内存模型而不是垃圾收集的角度,对 Eden 区域继续进行划分,JVM 为 =每个线程分配了一个私有缓存区域= ,它包含在 Eden 空间内。多线程同时分配内存时,使用 TLAB 可以避免一系列的非线程安全问题,同时还能够提升内存分配的吞吐量,因此我们可以将这种内存分配方式称之为 =快速分配策略=。据我所知所有 OpenJDK 衍生出来的 JVM 都提供了 TLAB 的设计。原创 2024-11-06 16:01:24 · 783 阅读 · 0 评论 -
5本地方法接口本地方法栈
简单地讲,=一个 Native Method 是一个 Java 调用非 Java 代码的接囗=在定义一个 native method 时,并不提供实现体(有些像定义一个 Java interface),因为其实现体是由非 java 语言在外面实现的。举例。原创 2024-11-06 16:00:53 · 327 阅读 · 0 评论 -
4虚拟机栈
由于跨平台性的设计,Java 的指令都是根据栈来设计的。不同平台 CPU 架构不同,所以不能设计为基于寄存器的。=优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令=。原创 2024-11-05 16:40:55 · 555 阅读 · 0 评论 -
3运行时数据区程序计数器
程序计数器就是用来记录当前线程执行到哪里的一个工具,cpu是有限的,在并发状态下,看起每个线程是一起执行的,其实不是,每个线程都是分配了一个时间片,轮到他的时候,他才有机会使用cpu,所以线程是一直在不停的切换,每次切换后都需要记录下当前线程执行到哪里了,所以每个线程都需要有一个自己的程序计数器。但在微观上:由于只有一个 CPU,一次只能处理程序要求的一部分,如何处理公平,一种方法就是引入时间片,每个程序轮流执行。(img-Tm6qC1W7-1730795709800)]共有的包含堆,方法区。原创 2024-11-05 16:35:27 · 471 阅读 · 0 评论 -
2类加载子系统
类加载器子系统负责从文件系统或者网络中加载 Class 文件,class 文件在文件开头有特定的文件标识。ClassLoader 只负责 class 文件的加载,至于它是否可以运行,则由 Execution Engine 决定。加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是 Class 文件中常量池部分的内存映射)原创 2024-11-04 17:02:00 · 419 阅读 · 0 评论 -
1初识别jvm
由于跨平台性的设计,Java 的指令都是根据栈来设计的。不同平台 CPU 架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。时至今日,尽管嵌入式平台已经不是 Java 程序的主流运行平台了(准确来说应该是 HotSpotVM 的宿主环境已经不局限于嵌入式平台了),那么为什么不将架构更换为基于寄存器的架构呢?具体 JVM 的内存结构,其实取决于其实现,不同厂商的 JVM,或者同一厂商发布的不同版本,都有可能存在一定差异。原创 2024-11-04 17:01:24 · 566 阅读 · 0 评论
分享