zoukankan      html  css  js  c++  java
  • 第十篇 JVM之运行时数据区<6>: 方法返回

    方法返回地址(return Address)是栈帧的最后一块区域,存放了调用该方法的程序计数器的值。
    方法的结束方式有两种:

    • 1、正常结束

    当执行引擎在执行字节码指令的过程,如果遇到方法返回的字节码指令,就会结束方法执行并将该栈帧操作数栈栈顶元素返回给调用者(除了void方法对应的return指令),并结束方法。方法返回指令包括ireturn(返回boolean、byte、short、int、char类型)、freturn、dreturn、areturn及return(void方法、构造器方法、类构造方法)

    • 2、异常结束

    方法执行过程中遇到异常时,就会去该方法的异常表中查找相应的异常处理器,如果没有匹配到异常处理器,就会结束方法,并且不会返回任何信息给上层方法。

      无论以那种方式结束,都要返回到调用该方法的上层方法的位置,方法正常退出时,会将上层方法调用该方法时程序计数器的值作为返回。异常退出时,返回地址要通过异常表来确定,栈帧通常不会保存这部分信息。本质上,方法的退出过程就是当前栈帧出栈的过程,此时,需要恢复上层方法的局部变量表、操作数栈、程序计数器的值等,让线程在方法调用处继续执行下去。

  • 相关阅读:
    鼠标滑过,解决ul下 li下a的背景与父级Li不同宽的问题
    php函数
    常用函数之数组函数
    php流程控制
    php运算符
    php常量
    php变量的数据类型
    PHP是什么
    css3新增属性
    html5的常用标签
  • 原文地址:https://www.cnblogs.com/zhexuejun/p/15631059.html
Copyright © 2011-2022 走看看