写一个方法,传递两个非0的int数值进去,实现变量交换,有几种方式?
方式1:
public static void swap(int a, int b){
System.out.printf("方式1:运行截图 a=%d, b=%d",a,b);
a = a + b;
b = a - b;
a = a - b;
System.out.printf("\na=%d, b=%d",a,b);
}
方式2:异或运算(一个数与另一个数异或两次其本身,一个数和自身异或结果是0)
public static void swap2(int a, int b){
System.out.printf("\n方式2:运行截图 a=%d, b=%d",a,b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.printf("\na=%d, b=%d",a,b);
}
运行成功截图如下

下面代码中的try-catch-finally语句,try里面有一个return,finally里面也有一个return,返回结果是什么?

答案:

在执行try-catch中的return之前一定会执行finally中的代码(finally存在的情况),如果finally中有return语句,就会直接执行finally中的return方法,所以finally中的return语句一定会被执行的。
执行流程:finally执行前的代码里面包含return语句,则会先确定return返回值,然后在执行finally里面的代码,最后在执行return。
网友评论