java中的String类

Sh8*_*h87 -1 java

在java中,String是一个类,它是可以改变的,所以我们不能改变它的值.在下面的代码中,它将连接其他字符串,没有任何错误.所以我想问一下,如果它是不可变的,那么为什么在这个以下代码值的String中是改变?

import java.util.*;

public class conc
{
    public static void main(String args[])
    {
        String a="Sheetal";
        a=a+"Ga";
        System.out.println("Result:"+a);
    }
}
Run Code Online (Sandbox Code Playgroud)

mer*_*011 6

在您显示的代码中,您尚未更改原始String对象.

相反,您已创建一个新的String对象,该对象表示a + "Ga",然后将其重新分配给引用变量a.

请注意,Java基本类型之外的所有变量都是引用.


Pab*_*lgo 5

您正在通过连接两个字符串来创建新对象,即:您不是更改引用的对象,a而是为引用分配引用新String对象的值.