1.答案:JAVA中只有值传递,没有引用传递。
2.什么是值传递:传递进方法中的数据(基本类型或者非基本类型)先求值,然后复制一份,方法内使用的都是复制后的那份数据。通常对于基本类型复制的是值,对于对象一般是对象地址(这种叫共享对象传递,是值传递的特殊情况)。
3.什么是引用传递:传递方法的数据就是原来的数据,直接使用,不进行复制。
值传递 | 共享对象传递(值传递) | 引用传递 | |
是否复制 | 是 | 是 | 否 |
是否有可能修改原来对象的值 | 否 | 是 | 是 |
复制的是什么 | 值 | 地址(因为复制后的地址还是同一个地址,因此导致可能会修改原对象的值,但是复制的地址,地址并没有被修改) | (不复制地址,直接使用地址) |