a = b和b = a之间的差异?

时间:2016-08-19 16:23:46

标签: java

我必须得到一些直接的东西。请告诉我我是否正确:

String a;
String b;

a = b表示b取值α

的值

b = a表示a取值b?

我很尴尬地对此&我很感激解释。

2 个答案:

答案 0 :(得分:9)

通常,a = b表示" a变为b"。然而,当我们谈论Object s(而不是原语)时,这只是故事的一部分。赋值后,变量或字段都引用同一个对象。当对象允许更改时(String没有),您在a上执行的任何更改都会对b产生影响,反之亦然。

这可以通过一个简单的图表来说明:

Assignment before and after

答案 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);

        }
    }