结论1:
(1)在try…catch语句中,当程序执行完return后的表达式后,会转而执行finally语句块,最后再继续执行return。但是try中的return值已经另存好了,finally虽然后执行但是已经改变不了return值了...
(2)当返回值为引用类型时,finally 语句块是可以修改最后的返回值的,因为 这是因为 emp 和 returnedValue 同时指向同一个对象..return值存的是对象地址..具体原因时Java 传递的问题.
结论2:在Java 中参数的传递总是采用“值传递”的方式。
- 一个方法不能修改一个基本数据类型的参数_____说明是值传递
- 一个方法可以修改一个引用类型的属性参数的状态_____我们可以比较方便的通过一个方法修改了传入的对象的状态_____ 看起来像引用传递
- 一个方法不能让对象参数引用一个新的对象_____说明不是引用传递
public static void swap(Employee emp1,Employee emp2) {
Employee tmp = emp1;
emp1 = emp2;
emp2 = tmp;
}
public static void main(String[] args) {
Employee tom = new Employee(100);
Employee bob = new Employee(200);
swap(tom,bob);
System.out.println("tom's salary = " + tom.getSalary());
System.out.println("bob's salary = " + bob.getSalary());
}
控制台输出的结果为
tom’s salary = 100
bob’s salary = 200
https://blog.csdn.net/weixin_43164759/article/details/86350446
https://blog.csdn.net/weixin_43164759/article/details/86299969