JAVA填空求解,为什么输出仍是AB

28执行完下列程序后,a的值为__A__ ,b的值为_B___ 。
public class Test{
public static void main(String[] args){
String a = new String("A");
String b = new String("B");
operate(a,b);
}
public static void operate(String x,String y){
x=x+y;
y=x;
}
}


如有帮助,望采纳,谢谢!

 

很简单,String类是不可变类,所以参数传递其实是操作新的对象,和原来的对象无关,这也是为什么JAVA中推荐如果存在字符串拼接的话不推荐使用String类,因为它是不可变的,会生成很多中间对象,所以建议多个字符串拼接时使用StringBuffer或者StringBuilder。

String 类是final修饰的,传参的现象和基本数据类型一样。但是底层原理不一样哦

https://www.cnblogs.com/boboooo/p/9066831.html这篇文章很详细

不管他们进不进行返回string的值都不会改变 因为string是不可变的