我必须得到一些直接的东西。请告诉我我是否正确:
String a;
String b;
a = b表示b取值α
的值和
b = a表示a取值b?
我很尴尬地对此&我很感激解释。
答案 0 :(得分:9)
通常,a = b
表示" a
变为b
"。然而,当我们谈论Object
s(而不是原语)时,这只是故事的一部分。赋值后,变量或字段都引用同一个对象。当对象允许更改时(String
没有),您在a
上执行的任何更改都会对b
产生影响,反之亦然。
这可以通过一个简单的图表来说明:
答案 1 :(得分:5)
在Java中,字符串a;声明含义,a是内存中String对象类型的引用变量。
在您的情况下,a和b都是String引用变量。
1)a = b,表示a获得b的引用。如果b有任何值,它将被分配给。
2)b = a,表示b得到a的引用。如果a有任何值,它将被分配给b。
如果你已经开始用Java学习,可以用简单的java程序轻松测试。
Java示例:
$style=2;
$check=array("myshop","mycar","mybag","myshirt");
foreach ($check as $value) {
if(isset($$value)){
$style=1;
}
}
输出:
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);
}
}