为什么它的输出是1234呢

img

img

img


changeStr方法中的str并不会影响外面的str
changeStr里面的str只作用于changeStr里面

main 方法中的 str 传入到 changeStr 方法参数的是它的值 1234,
changeStr 方法使用方法参数 str 接收了 1234,
然后修改的是 changeStr 方法参数 str 的值,
对 main 方法中 str 的值没有影响,
因此打印的结果是 1234。

改变实参不影响形参

虽然调用了changechar这个方法,但是这个方法没有返回值,所以str还是原来的值

String str=”1234”;
因为调用changeStr(str);后,str = "1234";就作为参数传入changeStr并赋值给参数变量str,函数中str = “welcome”;
只是对参数变量赋值,并没有修改函数外部的变量 str所以输出的依然是外部的str="1234"

再深度学习下,可以了解值传递和引用传递的区别

String是不可变的,任何进行更改的操作都会产生新的String实例。如果换个自己创建的类或者对象,他就是方法里面的重新赋值的了