首页 课程 师资 教程 报名

动力节点java培训机构分享java方法的调用过程

  • 2019-10-03 09:00:00
  • 1957次 动力节点


今天动力节点java培训机构小编为大家分享java方法的调用过程,希望通过此文大家能够掌握java方法的调用过程,下面就随小编一起来了解一下吧。


QQ截图20190702113743.jpg


1、java方法的调用过程:前提


  JVM在编译Bootstrap.java 的过程中,在将源代码编译成二进制机器码的同时,会判断其中的每一个方法的三个信息:


  (1)在运行时会使用到的局部变量的数量(作用是:当JVM为方法创建栈帧的时候,在栈帧中为该方法创建一个局部变量表,来存储方法指令在运算时的局部变量值)


  (2)其机器指令执行时所需要的最大的操作数栈的大小(当JVM为方法创建栈帧的时候,在栈帧中为方法创建一个操作数栈,保证方法内指令可以完成工作)


  (3)方法的参数的数量



  2、java方法的调用过程:java方法的执行


  一般地,对于java方法的执行,在JVM在其某一特定线程的虚拟机栈(JVM Stack) 中会为方法分配一个 局部变量表,一个操作数栈,用以存储方法的运行过程中的中间值存储。


  由于JVM的指令是基于栈的,即大部分的指令的执行,都伴随着操作数的出栈和入栈



  3、java方法的调用过程:机器指令的格式


  所谓的机器指令,就是只有机器才能够认识的二进制代码(这里指的是jVM)一个机器指令分为两部分组成:


  1569049287345001.png


  注:


  a). 如上图所示JVM虚拟机的操作码是由一个字节组成的,也就是说对于JVM虚拟机而言,其指令的数量最多为 2^8,即 256个;


  b). 上图中的操作码如:b2,bb,59….等等都是表示某一特定的机器指令,为了方便我们识别,其分别有相应的助记符:getstatic,new,dup…. 这样方便我们理解。



  4、java方法的调用过程:机器指令的执行模式—基于操作数栈的模式


  对于传统的物理机而言,大部分的机器指令的设计都是寄存器的,物理机内设置若干个寄存器,用以存储机器指令运行过程中的值,寄存器的数量和支持的指令的个数决定了这个机器的处理能力。


  但是Java虚拟机的设计的机制并不是这样的,Java虚拟机使用操作数栈 来存储机器指令的运算过程中的值。所有的操作数的操作,都要遵循出栈和入栈的规则,所以在《Java虚拟机规范》中,你会发现有很多机器指令都是关于出栈入栈的操作。


  2.png


以上就是动力节点java培训机构小编为大家分享的“java方法的调用过程”的内容,希望对大家有帮助,更多java最新资讯请继续关注动力节点java培训机构官网,每天会有精彩内容分享与你。


相关免费视频教程推荐


java入门学习零基础教程下载——方法的调用:http://www.bjpowernode.com/xiazai/2664.html


选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交