执行后,变量 second 将指向变量在第一次赋值中首先指向的相同内存实例(相同的“Hello world”)还是完全不同的内存区域(另一个内存区域也显示“Hello world” “)?
相同的内存区域。
这是您在每个阶段所拥有的:
String first = "Hello world";
给你:
+-------+ +--------------+
| 第一个|---------->| “你好世界” |
+-------+ +--------------+
然后
String second = first;
+--------+
| 第二个|----\
+--------+ | +---------------+
+---->| “你好世界” | (与上面相同的内存)
+--------+ | +---------------+
| 第一个 |----/
+--------+
然后
first = "Something else";
+--------+ +----------------+
| 第二个|---------->| “你好世界” | (与上面相同的内存)
+--------+ +----------------+
+--------+ +------------------+
| 第一个|---------->| “别的东西” |
+--------+ +------------------+