在这个例子中,
int x = 5;
int y = x;
x = 4;
Run Code Online (Sandbox Code Playgroud)
y将保持为5,因为x正在被重新分配,并且它无论如何都不会操纵它过去引用的对象.我的问题是,我刚刚说了一个正确的思考方式吗?或者是否存在"x"中存储的重复内存,并且重复放在"y"中.
与对象不同,基元直接存储在变量中.也就是说,基本类型的变量不存储对基元的引用,它直接存储基元的值.
将一个基本变量分配给另一个基本变量时,它会复制该值.
当你这样做
int x = 5;
int y = x;
x = 4;
x将其内部的值设置为4,y仍然具有值5,因为它的值是独立的.
通过更改另一个变量来改变一个变量的唯一方法是,如果两个变量都是对"可变"对象的引用,并且该对象是变异的 - 因为它们都在查看相同的对象,而不是它们自己的副本,他们都观察到同样的变化.(例如,字符串是不可变的,永远不会"突然改变",但数组和集合可以)
| 归档时间: |
|
| 查看次数: |
1027 次 |
| 最近记录: |