首页 > 其他分享 >JVM方法调用

JVM方法调用

时间:2022-09-21 22:55:35浏览次数:91  
标签:解释器 调用 x86 JVM JNI 方法

JVM方法调用

以下内容基本上是对于[1]的整理和一些补充。

下面的内容以x86为例,其他平台下会有所不同,可能有一些内容暂时还不好理解,不过配合其他内容多看几遍应该还是不成问题的。

首先来看看解释器栈的结构和编译方法栈的结构,先将图放在这里方便用来参考。

和解释器栈布局有关的文件是src/hotspot/cpu/x86/frame_x86.hpp,里面规定了每个解释器栈帧中的固定槽位中放置了那些信息,栈帧中有两个非固定的部分,一个是monitor部分,另外一个是运算数栈部分。

interpreter-stackframe.drawio

至于JNI的栈帧,就是c++栈的结构,所以取决于系统的ABI,所以从JNI到java方法的调用中间有转化,最常见的一个JNI调用java方法就是对main方法的调用。先把栈的布局放在这里,下面再来说如何进行的调用吧。

参考资料

[1] 鸠摩(马智) - 博客园

标签:解释器,调用,x86,JVM,JNI,方法
From: https://www.cnblogs.com/AANA/p/16717496.html

相关文章

  • JVM方法调用——java之间
    Java方法之间解释方法到解释方法进入解释方法到解释方法是最为简单的一种情况,最常见的调用是invokevirtual。有关的代码在TemplateTable::invokevirtual中:voidTemplat......
  • 关于VScode中GDB调试和cmake配合使用的方法
    关于VScode调试GDB的说明      Hello,各位看官好,小弟最近在做嵌入式的项目,那么嵌入式的项目有三个很重要的工具,一个就是VScode,一个就是GDB,还有一个就是CMake工具......
  • javaScript 字符串方法,字符串搜索,
     //这是字符串 能够使用单引号或双引号    varmko='helloworedw'    varqwe="hello worasd"    //new 一个字符串   ......
  • MySQL 常用30种SQL查询语句优化方法
    1、应尽量避免在where子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询进行优化,应尽量避免全表扫描,首先应考虑在where及orderby涉及的列......
  • Idea插件SequenceDiagram快速查看方法调用
    Idea打开setting->plugins安装插件SequenceDiagram快速查看方法调用在方法名上右键点击SequenceDiagram即可生成方法调用图最上面一行为该方法涉及的类名,下面的白色字......
  • florr存档方法
    很多人应该和我一样,喜欢玩florr,但是,florr没法存档就让人很难受,于是,今天给大家推荐一个方法如何备份florr.io数据?作者:lhc_0506在florr.io按下F12,找到控制台。输入cons......
  • linux命令:chmod(常用方法详解)
     linuxchmod命令是在日常运维中比较常用的命令之一,对文件管理比较重要,如设置web目录时需设置特定的权限以保证服务器安全。提示:在写完shell脚本后,我们一般需要给这脚本设......
  • 福禄克289万用表的功能简介,db测试方法
    1.  福禄克289的功能比普通的万用表多了哪些功能。(1)电导测量(2)AC+DC功能很强大,因为可以同时显示AC,DC,AC+DC(3)最强的优势,是数据记录,保存,可以图形显示记录的数据,可......
  • 对接友盟跳转H5在Safari浏览器中提示‘网址无效’解决方法
         iOS端配置universalLink(获取iOS的teamID和BundleID)即可配置完会生成https开头的专属iOS跳转链接......
  • Typora的基本使用方法
    Typora的使用方法1.标题系列方法一、警号#文本方法二、快捷键ctrl+数字(1~6)2.小标题系列无序标题:*文本和+文本有序标题:数字文本3.语言环境​```环境名称......