如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化的java例子
时间: 2024-09-26 14:18:57 浏览: 18
在Java中,当我们说一个参数变量所引用的实体会发生改变,通常是指引用传递(Pass by Reference),但在Java中所有的基本数据类型(如int、float等)实际上是值传递,也就是说改变的是副本,不会影响原始变量。但是,对于对象引用类型的变量(如引用类实例,如String、Object等),如果通过这个引用去修改对象的状态,那么原变量确实会反映这种改变。
举个简单的例子:
```java
public class Test {
public static void main(String[] args) {
String original = "Original"; // 原始字符串
changeReference(original); // 调用方法
System.out.println("After method call: " + original); // 输出结果
}
public static void changeReference(String s) { // 方法接收字符串引用
s = "Changed"; // 修改引用指向的新字符串
}
}
```
在这个例子中,`changeReference`方法接受一个`String`类型的引用作为参数。尽管我们在方法内部改变了`s`的值,但实际上它创建了一个新的`String`对象,并将引用指向了新对象,而不是直接修改了`original`。所以,`original`变量仍然保留其初始值"Original"。
阅读全文