• 第十篇 JVM之运行时数据区<6>: 方法返回


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

    • 1、正常结束

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

    • 2、异常结束

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

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

  • 相关阅读:
    233
    膝为筋之府
    AES 可逆性加密算法
    DES 可逆性加密算法
    Java Swing如何让窗体居中显示
    eclipse 安装插件
    eclipse 搭建Swt 环境
    Java Set元素比较
    Greenplum数据库中系统表gp_ distribution_ policy详解
    Greenplum数据库中系统表pg_class详解
  • 原文地址:https://www.cnblogs.com/zhexuejun/p/15631059.html
Copyright © 2020-2023  润新知