最近在看《java编程思想》,其中有一句话:[图片说明](https://img-ask.csdn.net/upload/201507/02/1435824299_513845.png)
既然参数是引用类型,于是我就做了一些试验:
class A{
public void f(Integer i){
i = 10;
}
public void h(Data data){
data.i=2;
data.str="abc";
}
}
class Data{
int i=0;
String str = "0";
}
public class Test {
public static void main(String[] args) {
Data data = new Data();
new A().h(data);
System.out.println(data.i);
System.out.println(data.str);
Integer i = new Integer(1);
new A().f(i);
System.out.println(i);
}
}
打印结果:
2
abc
1
于是百思不得其解,Integer与自定义对象有什么不同之处,String的情况跟Integer一样,求解惑。