【发布时间】:2014-09-24 08:22:59
【问题描述】:
在java中String是一个类,它是不可变的,所以我们不能改变它的值。在下面的代码中,它将连接其他字符串而没有任何错误。所以我想问一下,如果它是不可变的,那么为什么在下面的代码值中字符串的变化??
import java.util.*;
public class conc
{
public static void main(String args[])
{
String a="Sheetal";
a=a+"Ga";
System.out.println("Result:"+a);
}
}
【问题讨论】:
-
因为它不是对原始
String对象的引用? -
a = a + "Ga"实际上是在创建一个全新的实例String。尝试在分配之前和之后打印a的hashcode;)。也可以尝试String b = a + "Ga"并打印出a和b... -
你是对的,如果你没有分配一个新的字符串:)
-
花一些时间阅读有关字符串的内容,如果您必须提出问题,请先尝试研究 SO 中的现有问题,然后再提出此类基本问题。
标签: java