首页 > 编程语言 > 详细

java 基础:方法调用中的值传递是call by value,并且传递的是参数的值的拷贝,而不是引用

时间:2019-06-27 20:53:42      阅读:112      评论:0      收藏:0      [点我收藏+]
public class TestExtends {
public static void main(String[]args){
int s = 10;
System.out.println(System.identityHashCode(s));
s=3*s;
int num = 30;
System.out.println(System.identityHashCode(s));
System.out.println(System.identityHashCode(num));
}

  

输出

460141958
1163157884
1163157884

  

java-core  P121 

java中参数传递给方法,总是按值调用call by value。

在方法中,如果参数是对象,那操作的是对象的引用的拷贝。

如果参数是值,操作的是值的拷贝

public class TestExtends {
public static void main(String[]args){
A a =new A("bob");
A b = new A("lucy");
a.swap(a,b);
System.out.println(a.getName()+" "+b.getName());
A temp = new A("");
temp=a;
a=b;
b=temp;
System.out.println(a.getName()+" "+b.getName());
int i =1;
int j = 2;
a.swap2(i,j);
System.out.println(i+" "+j);
}
}
class A{
public int x=1;
void swap(A a,A b){
A temp = new A("---");
temp=a;
a=b;
b=temp;
}
void swap2(int a ,int b){
int c = 0;
c=a;
a=b;
b=c;
}
private String name;
public A(String name){
this.name = name;
}
public String getName(){
return name;
}
}

 

bob lucy
lucy bob
1 2

  

 

java 基础:方法调用中的值传递是call by value,并且传递的是参数的值的拷贝,而不是引用

原文:https://www.cnblogs.com/zhizhiyin/p/11099253.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!