方法执行之后,可以通过遇到一个return的返回指令,进行返回,这种返回的方式,称为正常完成的出口

另外的退出方法是,遇到了异常 无论是内存抛出的异常,还是athrow字节码产生的异常,只要没捕捉到,就会导致异常退出,这种方式的退出,是不会给它的上层调用者产生任何返回值的

但是无论是什么样的退出方式,方法退出后,都需要返回到方法被调用的位置,程序才能继续执行,正常退出的时候,会通过PC计数器的值进行返回,

但是异常退出的时候,通过异常处理器来确定

退出就相当于将这个栈帧出栈,退出执行的操作可能是恢复上层方法的局部变量表和操作数栈,就是恢复上层方法的局部变量表和操作数栈,把返回值压入调用者的栈帧中

方法调用不等于方法执行,方法调用就是确定调用哪一个方法,真正需要调用的方法,在执行的过程中才能真正的确定下来,这也带给了Java更大的动态扩展能力

发表评论

邮箱地址不会被公开。 必填项已用*标注