Java String 类型参数传递理解
String里面除了hash这个参数不是final类型的之外,其余参数都是final类型的,String本质上是char[]数组的包装类,所以牵扯到内容变化的函数最后返回String类型的时候都是重新new了一个新的String类型出来,这跟原来传入的String参数就没什么关系了。
因此,我认为,当String作为参数传递时,确实是以地址传递过去的,但是在对String类型的变量的值进行改变时,由于String类的值是常量,在创建后不能更改,所以对String参数进行操作,相当于new String(),已经改变了String对象的地址了,所以实参不会改变。
public class TestString {
public static void main(String[] args) {
String s1 = new String("abc");
System.out.println("在main方法中s1的地址:" + String.class.getName() +
"@" + Integer.to