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

Dak*_*ake 4 java

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

String a;
String b;
Run Code Online (Sandbox Code Playgroud)

a = b表示b取a的值?

b = a表示a取b的值?

我对这个很尴尬,我很感激解释.

das*_*ght 9

通常,a = b意思是" a成为b".然而,当我们谈论Objects(而不是原语)时,这只是故事的一部分.赋值后,变量或字段都引用同一个对象.当对象允许更改(String不执行)时,您执行的任何更改a也会生效b,反之亦然.

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

之前和之后的分配.


esh*_*sha 5

在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)