先来说说为什么引用数据类型形参的改变会影响到实参的数据,为何单单String不可以的问题吧.
我们都知道"引用数据类型形参的改变会影响到实参的数据"这句话是从C语言里面的指针里引出来的,引用变量形参改变时实参也会跟着改变,但是,我们有知道,方法在调用时只是单纯的copy了实参的值然后传给形参,如果是地址的话,形参拿到地址便可以操作地址指向的内容,但是请注意,String 有一个缺点就是一旦被赋值,其长度和内容便不能被改变.所以当方法在操作String 形参指向的内容是,会另外开辟一个空间来存贮操作后的结果,而原来的实参指向的数据不会被改变,这也就是你的问题的又来了.建议你可以对比String 和StringBuffer来测试一下 |