java 知识小点

try{}catch{}finally{}

 1 package com.xiaou.test1;
 2 
 3 public class FinallyDemo {
 4     // 第一种情况
 5     public static  int test1() {
 6         try {
 7             return 1;
 8         }catch(Exception e) {
 9             return  2;
10         }finally {
11             return 3;
12         }
13     }
14     // 第二种情况
15     public static  int test2() {
16         int i = 0;
17         try {
18             i++;
19             return i;
20             
21         }catch(Exception e) {
22             return  2;
23         }finally {
24             i--;
25         }
26     }
27     // 第三种情况
28     public static int test3() {
29         try {
30             int i = 1/0 ;
31             return i;
32         }catch(Exception e) {
33             return 1;
34         }finally {
35             System.out.println("我被执行了");
36         }
37     }
38     public static void main(String[] args) {
39         // 返回的是3
40         // 因为finally代码块无论是报错还是在try代码块中return了他将都会执行
41         System.out.println(test1());
42         // 返回的是1
43         // 因为在执行到return的时候会将值保存直到finally执行完成后返回,
44         //所以finally怎么改变这个值都不会受到影响
45         System.out.println(test2());
46         System.out.println(test3());
47     }
48 }

JAVA的初始化顺序:

  父类的静态成员初始化>父类的静态代码块>子类的静态成员初始化>子类的静态代码块>父类的代码块>父类的构造方法>子类的代码块>子类的构造方法

  注意:静态成员和静态代码块只有在类加载的时候执行一次,再次创建实例时,不再执行,因为只在方法区存在一份,属于一整个类。

猜你喜欢

转载自www.cnblogs.com/FlyBlueSky/p/9822704.html
今日推荐