`
zzhonghe
  • 浏览: 248168 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

finally关键字与return关键字的关系

    博客分类:
  • Java
阅读更多
finally关键字与return关键字的关系


1. finally的内容,会在真正的return之前,进行调用,如果finally里面改变了函数执行的流程,那么之前那个return就不再执行了。


    public static int testFinally(){
        int i=0;
        try{
            i=1;
            return i;
        }finally{
            i=2;
            return i;
        }
    }


结果: 2

    public static int testFinally2(){
        int i=0;
        while(true){
            Thread.yield();
            try{
                i=1;
                return i;
            }finally{
                i=2;
                continue;
            }
        }
    }

结果: 永远不return




2. finally是开启一个微型子例程,里面所引用的局部变量,从java栈copy过来(传值,传引用), 不会对java栈值进行修改。

    public static int testFinally1(){
        int i=0;
        try{
            i=1;
            return i;
        }finally{
            i=2;
        }
    }
    
结果: 1
1
3
分享到:
评论

相关推荐

    Java软件开发实战 Java基础与案例开发详解 10-5 finally关键字 共7页.pdf

    ### Java软件开发实战:Java基础与案例开发详解之10-5 finally关键字 #### finally关键字的理解及应用场景 在深入探讨`finally`关键字之前,我们先回顾一下Java异常处理的基础概念。异常处理是Java中用于处理程序...

    Java中Finally关键字

    Java中的`finally`关键字是异常处理机制的重要组成部分,它的主要作用是确保在程序执行过程中,不论是否发生异常,某些特定的代码段总会被执行。这在处理资源清理、保证程序完整性和防止资源泄露等方面非常关键。 ...

    C++ 中try finally关键字详解

    即使在 `try` 块中有 `return` 语句或者 `goto` 语句导致程序流程提前离开,`finally` 块的代码也会被执行。这是 `finally` 关键字的核心特性,确保资源清理逻辑总是能够被执行,比如关闭文件、释放内存等。 以下是...

    Python 关键字.docx

    本文将详细介绍 Python 中的关键字,包括 False、True、class、finally、is、return、none、continue、for 和 lambda 等。 1. False 和 True False 和 True 是 Python 中的布尔类型值,分别表示假和真。它们是逻辑...

    Java的关键字与保留字

    在深入探讨Java的关键字与保留字之前,我们首先需明确两个概念:关键字和保留字。在编程语言中,关键字是预定义的具有特殊含义的标识符,它们在编译时被解析器识别并执行特定的功能;而保留字则是语言设计者为未来...

    48个关键字

    `try`关键字用于尝试执行可能抛出异常的代码块,与`catch`和`finally`关键字配合使用。 ### 45. void `void`关键字表示无返回值的方法,用于声明不返回任何值的方法。 ### 46. volatile `volatile`关键字用于...

    C#的关键字大全

    C#的关键字大全 ...本节描述与 using 命名空间关联的关键字和运算符: * using * namespace C#语言中的关键字是编译器识别的特殊标识符,它们具有特殊的意义和用途。在编程时,正确地使用关键字是非常重要的。

    java关键字及作用

    - **extends**:用于表示继承关系,允许一个类继承另一个类的属性和方法。 - **final**:用于声明不可变类或方法。被`final`修饰的类不能被继承,被`final`修饰的方法不能在子类中被重写。 - **implements**:用于...

    c# 关键字 微软官方文档

    - 异常处理语句关键字:如 try、catch、finally、throw、throw new Exception() 等。 - checked 和 unchecked 语句关键字:用于整数算术运算和转换的溢出检查上下文。 - fixed 语句关键字:用于锁定可移动的变量...

    java 关键字查询文档

    50 多个关键字,它们包括但不限于 `abstract`、`assert`、`boolean`、`break`、`byte`、`case`、`catch`、`char`、`class`、`const`(虽然未使用)、`continue`、`default`、`do`、`double`、`else`、`enum`、`...

    Java关键字详细解

    `void`表示方法无返回值,而`return`则用于从方法中返回一个值。`int`、`double`、`char`等是基本数据类型,而`boolean`用于布尔逻辑。`null`是一个特殊的值,表示对象引用未指向任何对象。 流程控制关键字包括`if`...

    源码关键字统计.rar

    Java的关键字包括但不限于`abstract`, `assert`, `boolean`, `break`, `byte`, `case`, `catch`, `char`, `class`, `const`, `continue`, `default`, `do`, `double`, `else`, `enum`, `extends`, `final`, `finally...

    C#关键字列表

    - **try**:尝试执行代码块,通常与catch或finally一起使用。 - **catch**:捕获try块中抛出的异常,并执行相应的处理代码。 - **finally**:无论是否发生异常都会执行的代码块。 - **throw**:手动抛出异常。 ####...

    Java的throw和return

    #### return关键字 `return`关键字用于从方法中返回一个值或结果。它不仅可以用来结束方法的执行,还可以向调用者提供计算结果。例如: ```java public int addNumbers(int a, int b) { return a + b; } ``` 在...

    一文读懂python3中的所有33个关键字及其用法.pdf

    and 是 Python 中的逻辑判断语句,表示“与”的关系。只有当 and 左右两边的表达式都为真时,判断结果才为真,否则都是假。 5. as:重命名导入模块 as 是 Python 中的关键字,用于重命名导入模块。例如,`import ...

    JAVA文件关键字分析程序

    例如,`public`, `class`, `void`, `int`, `if`, `else`, `for`, `while`, `new`, `return`等都是Java的关键字。这个分析程序会遍历给定的Java源代码文件,对这些关键字进行计数,从而找出在代码中使用最频繁的元素...

    java关键字总结文档

    以下是对给定文件中提到的Java关键字进行的详细解释与总结: #### 1. `abstract` - **用途**:`abstract`关键字用于声明抽象类或抽象方法。抽象类不能被实例化,但可以被其他类继承;抽象方法没有具体实现,必须由...

    java中的关键字大全

    ### Java中的关键字大全 在Java编程语言中,关键字是一组预定义的词汇,它们具有特殊的含义和用途。理解和掌握这些关键字对于编写有效的Java程序至关重要。本文将详细介绍Java中的一些核心关键字,并提供相应的解释...

    java编程全部关键字解释

    这只是Java关键字的一部分,还有许多其他关键字,如 `float`, `for`, `if`, `import`, `instanceof`, `new`, `package`, `return`, `static`, `strictfp`, `super`, `this`, `throw`, `throws`, `transient`, `try`,...

    python关键字.pdf

    python关键字(简) >>> import keyword >>> keyword.kwlist ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', '...

Global site tag (gtag.js) - Google Analytics