public class StringXingCan { /** *我认为,视频讲的不对.String不是特殊的引用型. String所传递的就是地址.而不是常量值 * * 假设,"abc"地址为 0x0012 * * 然后,在change()方法中, 把常量池中0x0012这个地址,传递给形参s * * 当执行语句 s += "world"时, 由于String不能改变, 所以原0x0012的"abc"依然存在. * * 只能产生新的String,"abcworld",假设地址为0x0022 * * main()方法中,打印s时,打印的是 0x0012地址, 所以打印的是 "abc" */ public static void main(String[] args) { String s = "abc"; String change = change(s); System.out.println(change); }
private static String change(String s) { s += "world"; return s; } }
|