我必须得到一些直接的东西.请告诉我我是否正确:
String a;
String b;
Run Code Online (Sandbox Code Playgroud)
a = b表示b取a的值?
和
b = a表示a取b的值?
我对这个很尴尬,我很感激解释.
通常,a = b意思是" a成为b".然而,当我们谈论Objects(而不是原语)时,这只是故事的一部分.赋值后,变量或字段都引用同一个对象.当对象允许更改(String不执行)时,您执行的任何更改a也会生效b,反之亦然.
这可以通过一个简单的图表来说明:
在Java中,String a; 声明含义,a是内存中String对象类型的引用变量.
在您的情况下,a和b都是String引用变量.
1)a = b,表示a得到b的引用.如果b有任何值,它将被分配给a.
2)b = a,表示b得到a的引用.如果a有任何值,它将被分配给b.
如果您已经开始使用Java学习,可以使用简单的java程序轻松测试它.
Java示例:
package test;
public class TestString {
public static void main(String args[]) {
String a = "Stack";
String b = "Overflow";
a = b;
System.out.println("after [a=b]:" + "a =" + a + ";b=" + b);
//after this a and b has Overflow as value.
b = a;
System.out.println("after [b=a]:" + "a =" + a + ";b=" + b);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
after [a=b]:a =Overflow;b=Overflow
after [b=a]:a =Overflow;b=Overflow
Run Code Online (Sandbox Code Playgroud)