全国服务热线:400-035-8011

位置:太原达内IT培训学校 > 学校动态 > 太原分享java方法的调用过程

太原分享java方法的调用过程

来源:太原达内IT培训学校时间:2022/1/13 15:44:26

  今天java培训机构小编为大家分享java方法的调用过程,希望通过此文大家能够掌握java方法的调用过程,下面就随小编一起来了解一下吧。
  1、java方法的调用过程:前提
  JVM在编译Bootstrap.java 的过程中,在将源代码编译成二进制机器码的同时,会判断其中的每一个方法的三个信息:
  (1)在运行时会使用到的局部变量的数量(作用是:当JVM为方法创建栈帧的时候,在栈帧中为该方法创建一个局部变量表,来存储方法指令在运算时的局部变量值)
  (2)其机器指令执行时所需要的较大的操作数栈的大小(当JVM为方法创建栈帧的时候,在栈帧中为方法创建一个操作数栈,增加方法内指令可以完成工作)
  (3)方法的参数的数量
  2、java方法的调用过程:java方法的执行
  一般地,对于java方法的执行,在JVM在其某一特定线程的虚拟机栈(JVM Stack) 中会为方法分配一个 局部变量表,一个操作数栈,用以存储方法的运行过程中的中间值存储。
  由于JVM的指令是基于栈的,即大部分的指令的执行,都伴随着操作数的出栈和入栈
  3、java方法的调用过程:机器指令的格式
  所谓的机器指令,就是只有机器才能够认识的二进制代码(这里指的是jVM)一个机器指令分为两部分组成:
  注:
  a). 如上图所示JVM虚拟机的操作码是由一个字节组成的,也就是说对于JVM虚拟机而言,其指令的数量较多为 2^8,即 256个;
  b). 上图中的操作码如:b2,bb,59….等等都是表示某一特定的机器指令,为了方便我们识别,其分别有相应的助记符:getstatic,new,dup…. 这样方便我们理解。
  4、java方法的调用过程:机器指令的执行模式—基于操作数栈的模式
  对于传统的物理机而言,大部分的机器指令的设计都是寄存器的,物理机内设置若干个寄存器,用以存储机器指令运行过程中的值,寄存器的数量和支持的指令的个数决定了这个机器的处理能力。
  但是Java虚拟机的设计的机制并不是这样的,Java虚拟机使用操作数栈 来存储机器指令的运算过程中的值。所有的操作数的操作,都要遵循出栈和入栈的规则,所以在《Java虚拟机规范》中,你会发现有很多机器指令都是关于出栈入栈的操作。
领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/2387/news/474923/违者必究! 以上就是太原达内IT培训学校 小编为您整理 太原分享java方法的调用过程的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-035-8011