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


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

    • 1、正常结束

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

    • 2、异常结束

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

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

  • 相关阅读:
    Eclipse (indigo) 中安装jdk包并执行Maven
    UVA
    Android 仿QQ界面的实现
    Ajax是什么
    jieba.NET与Lucene.Net的集成
    jieba中文分词的.NET版本:jieba.NET
    SharePoint 2013技巧分享系列
    SharePoint 2013常用开发工具分享
    SharePoint 2013技巧分享系列
    SharePoint 2013技巧分享系列
  • 原文地址:https://www.cnblogs.com/zhexuejun/p/15631059.html
Copyright © 2020-2023  润新知