首页 > 编程语言 > 详细

java-finally的使用

时间:2019-10-21 14:17:33      阅读:75      评论:0      收藏:0      [点我收藏+]

java-finally的使用

首先要知道jvm栈

(1).jvm栈是用来对方法进行入栈出栈的操作,一个线程一个栈帧,所以jvm栈是私有的,jvm栈的基本运行单位是栈帧,一个栈帧是包括是三个部分的,局部变量表,操作数栈,程序计数器

局部变量表是用来存放方法的参数,和方法内部定义的局部变量,操作数栈是用来进行具体数值的运算。程序计数器是用来记录程序运行的位置。

具备上边的知识后,基本可以理解为什么finally不可以改变返回值了。

int a=10;

return a+1

finally  a+4

在程序可以看到,首先会找到局部变量表10,将a的指针指向它,如果没有该变量则创建。之后,将局部变量的10复制到操作数栈顶,进行a+1的操作,在这个时候,正常的时候程序是会返回的,但是finally关键字是程序必须执行的,所以这个时候,会将操作数栈顶的11,复制到局部变量表中,然后将a+4进入到操作数栈顶,计算之后,将原来的11再入栈执行return,返回操作数栈顶的值。所以说finally一般是用来进行比较重要的收尾工作,而不是来计算返回值的,除非在finally中return才会进行返回

java-finally的使用

原文:https://www.cnblogs.com/fan123yh/p/11712859.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!