JAVA引用、非引用[菜鸟求解]public static void main(String[] args) {testMethod()}public static void t
JAVA引用、非引用[菜鸟求解]
public static void main(String[] args) { testMethod(); }
public static void testMethod() { String i = new String("a"); String k = new String("b"); StringBuffer a = new StringBuffer("AAA"); StringBuffer b = new StringBuffer("BBB"); setMethod(a, b); setMethod(i, k); System.out.println(a); System.out.println(b); System.out.println(i); System.out.println(k); }
public static void setMethod(StringBuffer a, StringBuffer b) { a.append("BBBCCC"); b.append("AAADDD"); }
public static void setMethod(String a, String b) { a = "10"; b = "20"; }
[其他解释] public class StringTest3 { public static void main(String[] args) { testMethod(); }
public static void testMethod() { String i = new String("a"); String k = new String("b"); StringBuffer a = new StringBuffer("AAA"); StringBuffer b = new StringBuffer("BBB"); setMethod(a, b); setMethod(i, k); System.out.println(a); // AAABBBCCC System.out.println(b);//BBBAAADDD System.out.println(i);//a System.out.println(k);//b }
public static void setMethod(StringBuffer a, StringBuffer b) {
a.append("BBBCCC"); b.append("AAADDD"); }
public static void setMethod(String a, String b) { a = "10"; b = "20"; System.out.println(a); //这样就能输出了, System.out.println(b); } }
在值传递的过程中,始终传的是值,在java中没有传引用这一说。 a = "10"; b = "20"; 这是定义在方法体内的两个量,会给他们分配内存,可是这两个量的值,不会因为实际参数的改变而改变,因为这两个参数的作用域仅在方法体,他们可以和实际参数共享一个内存,他不会改变实际参数的地址。仅仅是指向的地址变了