当我在Java中查看代码示例时,我看到了一个奇怪的代码:
public class Application {
public static void main(String[] args) {
String[] x = {"A"};
String[] y = x;
x[0] = "B";
System.out.print(x[0] + " " + y[0]);
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白,为什么结果"B B"是正确的?当我创建并初始化数组x和y并且指定数组x的零元素等于B时,我认为答案必须是"B A".
String[] y = x;
Run Code Online (Sandbox Code Playgroud)
表示数组y现在引用数组x.
因此,改变内容x意味着改变的内容y(因为它们是相同的).
在Java中详细说明:
String[] y = {...};
Run Code Online (Sandbox Code Playgroud)
意味着您声明y是对数组的引用,而不是数组本身.因此,在分配时,您将分配引用而不是复制对象值.
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |