题目是这样。
public class T_Three {
public void increment(int a, Integer b, String c, StringBuffer d) {
a++;
b++;
c = c + " world";
d.append(" world");
}
public static void main(String[] args) {
int a = 0;
Integer b = new Integer(0);
String c = "hello";
StringBuffer d = new StringBuffer("hello");
new T_Three().increment(a, b, c, d);
System.out.println("a=" + a + " b=" + b + " c=" + c + " d=" + d);
}
}
问输出的结果a=? b=? c=? d=?
然后我在IDE上试了一下。输出的结果是:
a=0 b=0 c=hello d=hello world
请问是为什么呢?为什么a和b的自增没有增加?为什么String没有拼接,为什么StringBuffer的append却起了作用?
Stringbuffer我个人理解是append操作的就是传进来的对象,所以对其起了作用。c没有拼接是因为操作的是函数自身的c,并不影响外面的c。可是Integer和int我就不太懂了。
不知道我理解对不对,希望各位指导一下。
添加回答
举报
0/150
提交
取消