`

java中finnally的疑惑(转)

阅读更多
这是转自javaeye中一个作者的程序,但结果不明白,请大家讨论之。。。
package finallyTest;
public class FinallyTest 
{
	public static void main(String args[])
	{
		System.out.println("in main return: " + new FinallyTest().getString());
	}
	
	public String getString()
	{
		String returnString = null;
		try
		{
			returnString = "this string will be return.";
			return returnString;		
		}finally
		{			
			System.out.println("execute finally...");
			System.out.println("before clean returnString's value: " + returnString);
			returnString = null;
			System.out.println("after  clean returnString's value: " + returnString);
			System.out.println("execute finally end.");
		}		
	}
}

结果:
execute finally...
before clean returnString's value: this string will be return.
after  clean returnString's value: null
execute finally end.
in main return: this string will be return.

2,
package finallyTest;

public class FinallyTest1 
{
	public static void main(String args[])
	{
		System.out.println("return: " + new FinallyTest1().getMessage().message);
	}
	
	public Message getMessage()
	{
		Message returnMessage = new Message();
		try
		{
			returnMessage.message = "message";
			return returnMessage;		
		}finally
		{			
			System.out.println("execute finally...");
			System.out.println("before clean returnString's value: " + returnMessage.message);
			returnMessage.message = null;
			System.out.println("after  clean returnString's value: " + returnMessage.message);
			System.out.println("execute finally end.");
		}		
	}
}

class Message
{
	public String message = "message";
}

执行结果:
execute finally...
before clean returnString's value: message
after  clean returnString's value: null
execute finally end.
return: null
分享到:
评论

相关推荐

    解决java中的疑惑

    在Java编程语言中,有很多细节和特性可能会...通过深入学习和实践,初学者可以逐渐克服这些疑惑,成为一名熟练的Java开发者。"JAVA解惑.pdf"这份文档很可能详细阐述了这些问题,建议仔细阅读,以便更好地理解Java编程。

    Java解惑(中文).pdf

    《Java解惑(中文)》是一本专门为Java开发者编写的指南书籍,旨在解决在实际编程过程中遇到的各种疑惑和难题。本书以中文语言呈现,使得国内的Java程序员能够更轻松地理解并应用其中的知识。通过阅读这本书,读者...

    java解惑(转)

    2. **异常处理**:Java中的异常处理机制通过try-catch-finally块来实现,用于捕获和处理程序运行时可能出现的错误,这对于编写健壮的代码至关重要。 3. **集合框架**:Java集合框架包括List、Set、Map等接口以及...

    Java解惑 中文版

    本书深入浅出地探讨了Java语言的核心概念、常见疑惑以及最佳实践,旨在使开发者能够编写出更稳定、更高效的代码。 Java解惑部分涵盖了诸多主题,包括但不限于: 1. **内存管理**:Java的垃圾回收机制是其一大特色...

    Java编程思想 Thinking in Java 课后习题答案

    2. **异常处理**:Java中的异常处理是程序健壮性的重要组成部分,习题可能会涉及try-catch-finally语句块,以及自定义异常的创建和抛出。 3. **集合框架**:Java集合框架是数据存储和管理的关键,包括ArrayList、...

    java编程思想练习答案 the think in Java Annotated Solution Guide

    《Java编程思想》是 Bruce Eckel 的经典之作,它深入浅出地介绍了Java这门强大的编程语言。...通过对照书本和答案,你可以独立完成练习,也可以查找疑惑,这对于学习和进阶Java编程都是非常有价值的资源。

    最新版的Java-解惑

    《Java解惑》是一本专为Java初学者和进阶者设计的指南,旨在帮助读者解决在学习和...以上知识点只是《Java解惑》中的一部分,通过深入学习和实践,你可以逐步解开Java编程中的种种疑惑,成为一名更优秀的Java开发者。

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让知识环环相扣,降低了学习的难度 通过大量的比喻、类比、对比和图示等多种讲解方式,学习效果好 对Java语言的每个语法都提供了一个或多个例程讲解 ...

    Java语言程序设计进阶篇答案与代码

    Java语言程序设计进阶篇是Java开发者学习过程中不可或缺的一环,它涵盖了高级特性和实践技巧,旨在提升开发者对Java编程的深入理解。本资源包含了教材中的所有源代码和相关复习题、编程题的答案,这对于自学Java或者...

    《Java2实用教程》课后习题参考答案(第三版)

    《Java2实用教程》是Java...这本书的答案集可以帮助解决自学过程中的疑惑,避免因为问题积累而导致的学习瓶颈,从而更加高效地掌握Java编程技能。在实践中不断应用和巩固所学,是成为一名优秀的Java程序员的关键步骤。

    thinging in java 第四版 英文版

    6. **异常处理**:异常处理是Java编程中的重要部分,书中详细解释了try-catch-finally结构,以及如何使用checked和unchecked异常。 7. **多线程**:Java提供内置的多线程支持,书中讲解了线程的创建、同步、死锁等...

    Thing in Java\Thinking in Java 3rd Edition英文版,书后答案及代码

    书后的答案和代码是学习过程中极其宝贵的资源,它们可以帮助读者验证自己的理解,解决在阅读过程中遇到的疑惑。 Java是一种多范式、面向对象的编程语言,由Sun Microsystems(现为Oracle公司)于1995年发布。它的...

    JAVA-FAQ.rar_The Java FAQ_java编程

    这份名为"JAVA-FAQ.rar_The Java FAQ_java编程"的压缩包提供了一个Java编程的常见问题解答集锦,帮助开发者解决他们在编程过程中可能遇到的疑惑。"JAVA FAQ.pdf"是其中的主要文档,包含了丰富的知识内容。 首先,这...

    java解惑

    在学习Java的过程中,开发者往往会遇到各种疑惑和问题。"Java解惑"这个主题旨在解决这些困扰,帮助初学者和有经验的程序员更好地理解和掌握Java的核心概念和技术。 首先,我们需要理解Java的基础知识,包括语法、类...

    Java解惑(整理版本)

    《Java解惑(整理版本)》是一篇针对Java编程语言常见问题和疑惑的详细解析文章。博主通过深入探讨Java源码和使用工具的角度,帮助开发者解决实际开发中遇到的问题。以下将围绕标题和描述中的知识点进行展开: 1. *...

    Java解惑

    1. **异常处理**:Java中的异常处理机制是通过try-catch-finally语句块来实现的,理解何时和如何正确使用这些语句块对于编写健壮的代码至关重要。 2. **多线程**:Java提供了Thread类和Runnable接口来支持多线程...

Global site tag (gtag.js) - Google Analytics