public class TestJava
{
public static void main(String[] args)
{
String str = "Hello";
char[] array = {'L', 'U', 'C', 'Y'};
System.out.println(str);
System.out.println(array);
Exchange(str, array);
System.out.println(str);
System.out.println(array);
}
public static void Exchange(String str, char[] ar)
{
str = "Hi";
ar[0] = 'A';
}
}上面这个程序,string是对象类型,char是基本数据类型,按照道理,string应该是引用类型,传进去之后,应该会改变啊,相反,char类型的是基本数据类型,应该不会改变,可是,运行结果为什么是:
1. A引用和B引用都指向了 X对象,但B又被指向了新对象Y,所以A引用丝毫没受影响
2. A引用和B引用都指向了 X对象,但X对象又被改变了,所以通过A引用去得到X对象的值,发现修改了。