日期:2014-05-20  浏览次数:20672 次

java 传递的参数为对象引用类型~~ 求解释
String s = new String("hello ");

changeString(s);//changeString() 给s赋一个新的值

System.out.println(s);

书上给的解释是 对象引用指向的 字符串s 永远不会改变。

传递对象引用,通过这个引用去创建了 一个新的 String 类型的字符串



------解决方案--------------------
java采用的是形参模式,传入方法的对象参数其实是原变量的一个克隆(浅克隆,其实就是指向同一地址的另一个引用)。那当你修改一个String参数的值时:String是不可变的,当你修改一个String时,事实上我们重新创建了一个对象,然后将原引用指向这个新对象。 那么最终在这个方法中,你只是将一个原变量的引用指向了另一个地址。当然不会影响原变量的指向地址中的值。
大概就是这个意思。不知道说明白了没。