Java 中,为什么方法内部对引用类型参数的修改会影响外部变量?

java 中,为什么方法内部对引用类型参数的修改会影响外部变量?

为什么同样操作,在一个方法中执行后却输出结果不同?

Java 中,参数传递的方式分为值传递和引用传递。当传递一个基本数据类型(如 int、double)时,会进行值传递,将参数值直接复制给方法内对应的变量。

对于引用类型(如 String),传递的却是对象的引用,而不是对象的本身。这意味着方法内对引用对象的操作并不会影响到方法外部的原对象。

在给出的示例中,第一次操作发生在方法外部,对字符串变量 str 进行操作。由于 str 是一个引用,因此对其进行修改不会改变原来的对象。因此,str 在方法外仍然是 "aaa"。

相比之下,第二次操作发生在方法内部,对参数变量 s 进行修改。虽然 sstr 指向同一对象,s 的修改会反映到 str 上。因此,str 在方法外变成了 "aaabbba"。

由此可见,对于引用类型,方法内的修改只影响局部变量,不会影响外部使用的原对象

以上就是Java 中,为什么方法内部对引用类型参数的修改会影响外部变量?的详细内容,更多请关注其它相关文章!