如果想区分java到底是传值调用还是传引用调用呢,那么我们就要明白这两个概念到底表示的什么意思。
1.传值调用:就是传到类中或者方法中的变量,这个变量是一个对象的拷贝不能修改此对象
2.传引用调用:传到类中或者方法中的变量,这个是传递的是对象的内存中的地址,能够最终修改原来的对象。
package com.seu.testCase;
public class TestChuanzhi {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String aa="aa";
String bb="bb";
swap(aa, bb);
System.out.println("aa:===="+aa+"===bb:=="+bb);
}
public static void swap(String aaString,String bbString){
System.out.println("aaString:===="+aaString+"==bbString:====="+bbString);
String swapString=aaString;
aaString=bbString;
bbString=swapString;
System.out.println("aaString:===="+aaString+"==bbString:====="+bbString);
}
}
输出结果为:
aaString:====aa==bbString:=====bb
aaString:====bb==bbString:=====aa
aa:====aa===bb:==bb
aa,bb作为swap方法的参数,但是最终值没有发生变化,说明只引用了aa,bb的一份拷贝,而内存中的数据没有发生变化。说明java是值传递。
分享到:
2009-09-02 11:48
浏览 1770
评论