java基础——值传递和应用传递

Posted vcr_玄子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础——值传递和应用传递相关的知识,希望对你有一定的参考价值。

public class StringTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
operate(a,b);
System.out.println(a.toString() + "," + b);
}

static void operate(StringBuffer x, StringBuffer y) {
// TODO Auto-generated method stub
y.append(x);
// System.out.println("=============");
// System.out.println("y=:"+y+"这是传入的b");
// System.out.println("x=:"+x+"这是传入的a");
y = x;
// System.out.println(y = x);
// System.out.println("-------------");
// System.out.println("y=:"+y);
// System.out.println("x=:"+x);
// System.out.println("=============");
}

}

结果:A,BA

 

  比如string a=A这里字符"A"会开辟一个物理地址来储"A"这个值,引用a也会开辟一个物理地址用来存放字符"A"存储的所在地址。当你用string b = a来赋值的时候,是把a的物理地址传递给b而不是字符"A"的地址。这时候改变b引用的内容,丝毫不会影响到a引用的内容。然后方法结束后这两个临时的变量a和b都被抛弃了,这丝毫不会改变y所引用的对象。

 






















以上是关于java基础——值传递和应用传递的主要内容,如果未能解决你的问题,请参考以下文章

Java基础11java方法中只有值传递,没有引用传递

java基础面试题02

java之方法的参数传递(值传递和引用传递)

Java的参数传递是「按值传递」还是「按引用传递」?

Java基础 | Java变量的特殊传递机制和实现细节

4.JAVA基础面试题:重要知识