[code="java"]
package test;
public class TestMain
{
public static void main(String args[])
{
String a = "a";
a = a+"b";
System.out.println(a);
//输出为ab
changeA(a);
System.out.println(a);
//输出为ab
Apple apple = new Apple(1);
ChangeApple(apple);
System.out.println(apple.getId());
//这里输出为2
}
public static void changeA(String a)
{
a=a+"c";
}
public static void ChangeApple(Apple a)
{
a.setId(2);
}
}
[/code]
请问下 第二次输出的结果为什么是ab?按我的理解,String是引用类型,changeA是可以改变a的值的呀?
有人告诉我String是final的,如果是这样,那为什么第一次输出又是ab呢?在a=a+"b"的过程中a改变了吗?