java-try,return和finally相遇时的各类状况

今天碰到了这样一个问题;使用try,return和finally会碰到的各类状况
1,try中有return时,执行顺序;
2,try和finally中都有return时,执行顺序;
3,运算代码在finally中,try中return返回值时的执行顺序;
代码:
public class tryfinally {
static int i=0;
public static void main(String[] args) {
  int value=getValue1();
   System.out.println(value);
  System.out.println(getValue());
  System.out.println(getValue1());
  System.out.println(getValue2());
  System.out.println(getValue3());
}
@SuppressWarnings("finally")
public static boolean getValue(){
  try{
   return true;
  }finally{
   return false;
  }
}

@SuppressWarnings("finally")
public static int getValue1(){
  try{
   return i;
  }finally{
   i++;
   System.out.println(i);
  }
}

@SuppressWarnings("finally")
public static int getValue2(){
  int y=0;
  try{
   return y;
  }finally{
   y++;
   System.out.println(y);
  }
}
}

@SuppressWarnings("finally")
public static int getValue3(){
                int z=0;
  try{
   return z;
  }finally{
   z++;
  }
}
结果:false
1
0
1
0
1
0
0

个人结论:代码按顺序执行,有多个return时返回的同一个值时后者覆盖前者。get

相关文章
相关标签/搜索