`
glutinit
  • 浏览: 47306 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JVM摘要--PC Registers 和 JVM Stacks

    博客分类:
  • JVM
阅读更多
1.PC Register(Program Counter Register);
即程序计数器寄存器
JVM支持同一时间同时运行多个线程,每一个线程都有它们自己的pc register。在同一个时刻,JVM的线程只能运行一个单独方法中的代码,此方法称为该线程的当前方法(Current Method)。 如果这个当前方法不是native的,PC register就指向正在被执行的JVM指令的地址。而如果一个当前方法是native的,则pc register中的值是不确定的。Pc register有足够的空间来存储returnAddress或者native指针。

2.JVM stacks
每一个JVM线程均有一个私有的栈,与线程是同时创建的。一个JVM的栈中存放了很多frames,JVM的栈和C语言中的栈的概念很类似,它是用来存放本地变量和partial结果的(partial results),并且在方法调用和返回时起到一定作用。由于对栈的操作只有push和pop,所以可以用堆分配。JVM的栈在内存中不要求连续存放。
JVM的规范中允许栈可以是固定尺寸的,也可以根据需要动态扩展或收缩其尺寸。开发或者用户可以设定栈的初始尺寸,对于动态栈空间的情况,也可以设定栈的最大和最小值。
下面是与栈操作的一些相关异常:
1. 如果一个线程所需的栈空间大于允许值,则抛出StackOverFlowError;
2. 如果一个线程的栈可以动态扩展,但当需要扩展栈空间时发现内存空间不足;或者在初始化栈空间时,就发现内存不足了,则抛出OutOfMemoryError;
分享到:
评论

相关推荐

    nginx-upstream-jvm-route-1.15

    在提供的压缩包文件"nginx-upstream-jvm-route-master"中,可能包含了源代码、配置示例、安装指南或者使用文档,帮助用户理解和实现这一特性。用户需要按照文档的指示进行配置和部署,以便在Nginx 1.15中成功使用...

    nginx-upstream-jvm-route 和 nginx 对应版本,亲测可用

    此资源有两个文件,含 nginx-upstream-jvm-route 和 nginx 对应版本,都是tar.gz文件。 安装方法网上很多就不写了,亲测可用。 不用担心版本不匹配造成安装失败,再浪费积分去到处下载尝试的烦恼。 此资源有两个文件...

    基于jvm-sandbox-repeater重新开发的一款流量回放平台产品

    在jvm-sandbox-repeater基础上提供了更加丰富功能,同时便于线上部署和使用,更多对比参考。 使用场景 你是否遇到过以下的问题? 线上有个用户请求一直不成功,我想在测试环境Debug一下,能帮我复现一下吗? 压测...

    JVM基础-超清文字版.pdf

    - 类装载器:负责加载类文件到JVM中,分为引导类加载器、扩展类加载器和应用类加载器。 - 运行时数据区:包括方法区、堆、栈、本地方法栈和程序计数器。 - 执行引擎:解释执行字节码或通过即时编译器(JIT)将其...

    深入jvm内核-原理、诊断与优化教学视频

    1、java虚拟机的基本介绍。 2、字节码的执行 3、常用的jvm参数配置 4、算法和种类 5、gc参数配置 6、类加载器 7、性能监控工具 8、jvm堆栈分析

    JVM图解-JVM指令-JVM原型图.rar

    在这个压缩包中,"JVM图解.png"可能是对JVM内部结构的可视化表示,"JVM图解"可能是一个详细的文档,解释了JVM的工作原理,而"JVM指令手册 中文版"则提供了JVM可执行的所有指令的详细信息。下面,我们将深入探讨JVM的...

    metrics-jvm-3.1.5-API文档-中文版.zip

    赠送jar包:metrics-jvm-3.1.5.jar; 赠送原API文档:metrics-jvm-3.1.5-javadoc.jar; 赠送源代码:metrics-jvm-3.1.5-sources.jar; 赠送Maven依赖信息文件:metrics-jvm-3.1.5.pom; 包含翻译后的API文档:...

    kotlinx-coroutines-io-jvm-0.1.1.jar

    kotlinx-coroutines-io-jvm-0.1.1.jar

    ant-eclipse-jvm1.2-1.0.jar.zip

    本文将详细介绍标题为"ant-eclipse-jvm1.2-1.0.jar.zip"的压缩包,以及其中包含的文件和它们在软件开发中的作用。 首先,我们要理解这个文件名的含义。"ant-eclipse-jvm1.2-1.0.jar.zip"暗示这是一个与Ant和Eclipse...

    metrics-jvm-3.1.5-API文档-中英对照版.zip

    赠送jar包:metrics-jvm-3.1.5.jar; 赠送原API文档:metrics-jvm-3.1.5-javadoc.jar; 赠送源代码:metrics-jvm-3.1.5-sources.jar; 赠送Maven依赖信息文件:metrics-jvm-3.1.5.pom; 包含翻译后的API文档:...

    面试总结-JVM .png

    JVM 的运行机制 多线程 JVM 的内存区域 JVM 会创建操作系统的接口创建一个原生线程。JVM 线程和操作系统线程是一一对应的

    jvm-npm, 适用于JVM的兼容CommonJS模块加载器.zip

    jvm-npm, 适用于JVM的兼容CommonJS模块加载器 JVM上Javascript运行时中的NPM模块加载支持。 实现基于 http://nodejs.org/api/modules.html,应该完全兼容。 当然,不包括完整的node.js API,因此不要期望依赖于它的...

    JVM--字节码和类的加载篇1

    "JVM--字节码和类的加载篇1"这个标题暗示了我们将深入理解JVM如何处理字节码以及类加载的过程。 在Java的Class文件中,数据类型扮演着基础的角色。描述符是用来表示各种数据类型的,包括基本数据类型如byte、char和...

    nginx-upstream-jvm-route-1.12.0.tar.gz

    nginx_upstream_jvm_route 是一个 Nginx 的扩展模块,用来实现基于 Cookie 的 Session Sticky 的功能。 安装方法(进入Nginx源码目录): #patch -p0 < /path/to/this/directory/jvm_route.patch # ./configure -...

    java jvm 参数 -Xms -Xmx -Xmn -Xss -

    Java虚拟机(JVM)是Java程序运行的基础,它负责解释和执行字节码。在JVM中,内存管理是至关重要的,而`-Xms`, `-Xmx`, `-Xmn`, `-Xss`等参数则直接影响着Java应用程序的性能和稳定性。这些参数是用来调整JVM堆内存...

    JVM详解-淘宝内部资料

    总的来说,理解和掌握JVM的工作原理对于Java开发者来说至关重要,它能帮助你编写更高效、更稳定的代码,也能在出现问题时快速定位并解决。通过深入学习"JVM详解-淘宝内部资料"中的内容,你将能够成为一名精通JVM的...

    练习JVM调优-jvm_demo.zip

    "练习JVM调优-jvm_demo.zip"是一个压缩包,包含了用于JVM调优实践的示例项目"jvm_demo-master"。通过这个项目,我们可以深入学习和理解JVM的工作原理和调优技术。 1. **JVM结构与工作原理**: - 类加载器:加载、...

    nginx-upstream-jvm-route-0.1.tar.gz

    "nginx-upstream-jvm-route-0.1.tar.gz"这个压缩包包含了实现这一功能的相关配置和脚本。在解压后的"nginx_upstream_jvm_route"目录中,我们可以找到Nginx的配置示例、Java应用程序的部署配置以及可能的脚本文件。...

    mini-jvm in rust实现jvm,jvm-rs-main.zip

    《深入浅出:Rust语言实现Mini-JVM》 在当今的编程世界中,Java虚拟机(JVM)因其高效、跨平台的特性而被广泛使用。然而,JVM的内部工作原理对于许多开发者来说仍然是一个神秘的概念。本文将探讨一个特殊的项目——...

    JVM规范--高手总结

    Java的开发流程包括编写、编译、打包、部署和运行等步骤,其中编译后的字节码(.class文件)可以在任何JVM上运行。 JVM内存模型是理解Java性能优化的关键。按照JVM规范,内存主要分为五个区域:程序计数器、Java...

Global site tag (gtag.js) - Google Analytics