在try-catch-finally语句中使用return语句遇到了一些疑问

代码一:

static intintc(){int x =0;try{

x=1;returnx;

}finally{

x= 3;

}

}

代码二:在上面那段代码的finally语句中加入了return语句

static intintc(){int x =0;try{

x=1;returnx;

}finally{

x= 3;returnx;

}

}

代码三:

static intintc(){int x =0;try{

x=1;returnx;

}finally{

x= 3;return 0;

}

}

那么这三个方法的执行结果是多少呢?

代码一:返回1;

代码二:返回3;

代码三:返回0;

View Code

其中的原理是怎么回事呢?

原因是java虚拟机在执行具有返回值的方法时,会在本地变量列表中创建一块区域来存储方法的返回值,在执行返回语句时便会从这个区域中读取值进行返回。

代码一中在try中将1赋值给变量x,然后将变量x的值复制到存储返回值的区域,最后返回值区域存储的就是1,执行返回语句时便返回一。

而在代码二中,同样将1赋值给变量x,然后将x的值复制到存储返回值的区域,此时返回值的区域的值为1,然后跳转到finally语句中,此时将3赋值给局部变量x,然后在将x的      值复制到存储返回值的区域,最后执行返回语句,读取到的返回区域中的值就是3.

代码三中,try中执行的语句是一样的,跳转到了finally语句中后,将3赋值给局部变量,然后将0赋值到存储返回值的区域,最后执行返回语句,读取到的返回区域中的值就是      0,所以就返回0。

java的tey语句return了_java中try-catch-finally中的return语句相关推荐

  1. java连接打印机访问被拒绝_java – 尝试访问spring security中的登录页面时访问被拒绝的异常...

    我正在使用基于java的spring security.我创建了自定义访问决策选民impl. 但是当我运行应用程序时,我无法打开登录页面,因为它说,访问被拒绝. 这是在我添加自定义访问决策选民impl ...

  2. java 判断ftp文件是否存在_java如何检验ftp服务器中指定文件是否存在

    详细内容 项目工作中,需要检验ftp服务器中指定文件是否存在,在网上查阅了相关资料,可以通过ftpClient类进行实现. 免费学习视频教程分享:java课程 具体实现代码:import org.ap ...

  3. java的mysql分页查询语句怎么写_java的mysql连库 增删改查语句、分页查询语句大全...

    //代码复制出来,修改一下bean,加载一下jar包,能直接用的,不懂加我Q 983331283 package cn.tootoo.entity; public class Page { priva ...

  4. java如何读取下拉列表的值_java - 如何在Selenium 2中选择/获取下拉选项

    java - 如何在Selenium 2中选择/获取下拉选项 我正在将我的selenium 1代码转换为selenium 2,并且无法找到在下拉菜单中选择标签的任何简单方法或获取下拉列表的选定值. 你 ...

  5. java excel 删除单元格格式_Java 去除excel表格内容中的空格

    读取excel数据 package cn.edu.cust.demo; import java.io.File; import java.io.FileInputStream; import java ...

  6. JAVA判定参数类型进行赋值_java – 为什么泛型方法在赋值中更改了参数化类型?...

    在编写处理表单数据的通用方法时,我遇到了以下(我认为)未完成的行为.给出以下代码: public class Test { public void someGenericMethod(Integer ...

  7. java设置标签艺术字体颜色_Java 在Word文档中添加艺术字

    与普通文字相比,艺术字更加美观有趣也更具有辨识度,常见于一些设计精美的杂志或宣传海报中.我们在日常工作中编辑Word文档时,也可以通过添加艺术字体来凸显文章的重点,美化页面排版.这篇文章将介绍如何使用 ...

  8. java 判断单元格为空_java – 如何在Apache POI中获取Excel空单元格值?

    我有一个巨大的excel文件与吨的列,看起来像这样: – Column1 Column2 Column3 Column4 Column5 abc def ghi mno pqr ...... 这是我写 ...

  9. Java建立长链接的方式_java http长链接(keep-alive)导致的问题

    两种由http长链接(keep-alive)导致的问题,当然这两种问题都有多种原因导致,这里只分析针对keep-alive相关而产生的异常. 1 SocketException: Connection ...

  10. java中return不运行的情况_Java中try catch finally语句中含return语句的执行情况总结-编程陷阱...

    前言:有java编程基础的人对java的异常处理机制都会有一定了解,而且可能感觉使用起来也比较简单,但如果在try catch finally语句块中遇到return语句,开发者可能就会遇到一些逻辑问 ...

最新文章

  1. 【剑指offer-Java版】40数组中只出现一次的数字
  2. UA MATH563 概率论的数学基础 中心极限定理14 Kolmogorov maximal inequality
  3. python之简单的get和post请求
  4. Kotlin实战指南二:变量、常量、静态常量
  5. OpenCASCADE:使用扩展数据交换 XDE之特性
  6. 服务器密码机部分文件的介绍学习
  7. cmake copy dll输出目录_VScode下 多文件,小工程使用cmake 速记
  8. 由于找不到MSVCP20.dll,无法继续执行代码
  9. 桥接模式和php实现
  10. C语言项目大作业万历年,用C语言编写万历,详细代码.doc
  11. 数据库死锁,导致CPU异常增长
  12. 百度排名规则及算法(百度内部资料)
  13. 各国市场分析(越南,智利)
  14. 智齿科技获投B轮融资5000万人民币
  15. 移动开发利器-Bmob后端云使用体验
  16. Ultimate Colour Control for mac(fcpx终极色彩控制插件)
  17. Oracle数据库常用语句使用记录
  18. 微信小程序 DES3加密解密
  19. python 淘宝滑块验证_pyppeteer硬钢掉淘宝登入的滑块验证
  20. 计算机管理中可移动磁盘无内容,u盘不显示可移动磁盘-电脑插入U盘后不显示可移动磁盘,磁盘管理打不开...

热门文章

  1. 油管:The Truth About Lab-Grown Meat
  2. Ground Truth是什么意思
  3. 好客php在线客服源码搭建教程可对接网页/小程序/微信公众号等
  4. 【book 120】My Brief History By Stephen Hawking
  5. 2022年G1工业锅炉司炉上岗证题库模拟考试平台操作
  6. [JZOJ1901] 【2010集训队出题】光棱坦克
  7. 图片播放器的实现1——利用Image2LCD提取图片数据并显示
  8. 语文文学常识。不转可惜!谁整理的?太佩服啦!
  9. 嵌入式Linux教程—裸机、应用、驱动完整教程目录
  10. 中年男人像条狗?其实是不如狗!