`
test_angel
  • 浏览: 52715 次
  • 性别: Icon_minigender_2
  • 来自: 西安
社区版块
存档分类
最新评论

Java

 
阅读更多

有点困惑了,try...catch...finally

 

我们在知道:finally不论在什么情况下都会执行。面对下面的代码,我有点困惑了,大家如果知道原因,指导指导。

 

public static void main(String[] args) {
		
		System.out.println("Hello World!");
		
		System.out.println(getValues());	
		
	}	
	
	
	private static int getValues(){
		int value = -1;
		try {
			value = 10 ;
			System.out.println(" value current1 in try is " + value);
			return value;
		} catch (Exception e) {
			value = 0 ;
			return value;
		}finally{
			value = 5 ;
			System.out.println(" value current2 in finally is " + value);
			
		}
	}

 

返回结果:

写道
Hello World!
value current1 in try is 10
value current2 in finally is 5
10

 

 

疑问

      在finally中改变了value的值,为什么返回的值还是10???

 

如果在finally中也加上“return value;”,则返回结果如下:

写道
Hello World!
value current1 in try is 10
value current2 in finally is 5
5

 

如果将getValue方法修改如下:

	private static int getValues(){
		int value = -1;
		try {
			value = 10 ;
			System.out.println(" value current1 in try is " + value);
		} catch (Exception e) {
			value = 0 ;
		}finally{
			value = 5 ;
			System.out.println(" value current2 in finally is " + value);			
		}	
		System.out.println(" value current2 in getValues is " + value);
		return value;
	}
 


返回结果如下:

写道
Hello World!
value current1 in try is 10
value current2 in finally is 5
value current2 in getValues is 5
5
 

所以对于这个疑问,我无解了!!!

 

 

大哥大姐帮个忙解答解答!!!

 

 

 

 

 

分享到:
评论
1 楼 nanapoleon 2012-07-29  
对着呢啊,你第一个例子是,已经return了后,才去改变value的值,返回值是10。

相关推荐

    java源码包---java 源码 大量 实例

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...

    Java 面经手册·小傅哥.pdf

    这是一本以面试题为入口讲解 Java 核心内容的技术书籍,书中内容极力的向你证实代码是对数学逻辑的具体实现。当你仔细阅读书籍时,会发现Java中有大量的数学知识,包括:扰动函数、负载因子、拉链寻址、开放寻址、...

    Java OCR 图像智能字符识别技术,可识别中文

    Java OCR(Optical Character Recognition,光学字符识别)技术是一种计算机视觉领域的应用,它能将图像中的文字转换成可编辑的文本格式。这项技术在各种场景下都有广泛应用,比如文档扫描、车牌识别、发票处理等。...

    Java API文档 中文网页版

    Java API文档是Java开发者的重要参考资料,它包含了Java开发工具包(JDK)中的所有类、接口、方法和常量的详细说明。这份中文网页版的Java API文档为中国的开发者提供了便利,无需通过英文版本来学习和查找API信息,...

    java源码包3

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...

    java电商源代码 java电商源代码

    java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java...

    java笔记 java笔记

    ### Java基础知识概述 #### 1. 前言 Java是一种广泛使用的面向对象的编程语言,因其跨平台性、安全性和强大的功能而受到欢迎。Java的设计理念是“一次编写,到处运行”,这意味着编写的Java程序可以在任何安装了...

    java景点导航系统java景点导航系统

    java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点...

    java单机小游戏.zip

    java单机小游戏java单机小游戏java单机小游戏java单机小游戏 java单机小游戏java单机小游戏java单机小游戏java单机小游戏 java单机小游戏java单机小游戏java单机小游戏java单机小游戏 java单机小游戏java单机小游戏...

    java开源包4

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包9

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java简易小游戏.zip

    java简易小游戏java简易小游戏java简易小游戏java简易小游戏 java简易小游戏java简易小游戏java简易小游戏java简易小游戏 java简易小游戏java简易小游戏java简易小游戏java简易小游戏 java简易小游戏java简易小游戏...

    javacv配置+javacv人脸识别代码

    JavaCV(Java Computer Vision)是一个基于Java的计算机视觉库,它为Java和Android开发者提供了方便的接口来使用多个流行的计算机视觉框架,如OpenCV、FFmpeg等。在本项目中,我们将探讨如何配置JavaCV以及如何使用...

    java开源包5

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java 38个练手小项目

    java 38个练手小项目java 38个练手小项目java 38个练手小项目java 38个练手小项目java 38个练手小项目java 38个练手小项目java 38个练手小项目java 38个练手小项目java 38个练手小项目java 38个练手小项目java 38个...

    java错误处理:java.lang.OutOfMemoryError: Java heap space

    ### Java 错误处理:java.lang.OutOfMemoryError: Java heap space 在Java应用程序开发过程中,经常遇到的一个问题就是内存溢出错误,特别是在处理大量数据或长时间运行的应用时。其中,“java.lang....

    从Java菜鸟到专家的资料

    这份名为“从Java菜鸟到专家的资料”的压缩包文件包含了丰富的学习资源,旨在帮助初学者逐步成长为Java领域的专家。以下是对各个文件的详细解读: 1. **J2EE研究文集.chm**:这个文件专注于Java企业级应用开发,...

    Java基础 学习笔记 Markdownr版

    Java是一种广泛使用的面向对象的编程语言,其设计目标是具有高度的可移植性,灵活性和安全性。本学习笔记主要涵盖了Java的基础知识,包括面向对象、集合、IO流、多线程、反射与动态代理以及Java 8的新特性等方面,...

    Java文件管理系统源码.zip

    Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 ...

    Java网络编程第三版.pdf

    《Java网络编程第三版》是Java开发者深入理解网络编程的重要参考资料。这本书主要涵盖了Java平台上的网络应用程序开发,从基础概念到高级技术,为读者提供了一套全面的学习路径。以下是本书中涉及的一些关键知识点:...

Global site tag (gtag.js) - Google Analytics