java方法之间参数传递(java 程序设计语言对对象采用的是引用调用吗)

版权声明:有错误希望指正,谢谢! https://blog.csdn.net/wenpeng12/article/details/83962839
java方法之间参数传递
  1. 基础类型值传递
public static void tripleValue(double x){
    x = 3*x;
}

double value = 10;
tripleValue(value);
System.out.println("value is:"+value);  //value is:10

调用tripleValue时,x仅仅是value的一个拷贝。tripleVlue方法执行完成后变量x会被释放。

  1. 关于引用(对象)的传递
    java 程序设计语言对对象采用的是引用调用吗?
    实际上这种理解不对,给出以下举例来反驳这种说法。
    首先编写一个交换两个雇员对象的方法:
public static void swap(Employee x, Employee y){
    Employee temp = x;
    x = y;
    y = temp;
}

//进行调用
Employee a = new Employee("a");
Employee a = new Employee("a");
swap(a,b);

最终,在方法结束时临时变量x和y会被丢弃。原来的变量a和b仍然引用这个方法之前所引用的对象。

这个过程说明:java语言对对象次啊用的不是引用调用,实际上,对象引用是按值传递的(将这个引用本身(注意并非这个引用所指向的对象)拷贝了一份传递进去了)

以上内容为阅读《java核心技术》

猜你喜欢

转载自blog.csdn.net/wenpeng12/article/details/83962839