注册 登录
编程论坛 JAVA论坛

String s ="hello";s+="world";问s的结果是什么?

抹茶 发布于 2016-07-27 18:21, 8100 次点击
String s ="hello";s+="world";问s的结果是什么?
String定义的字符串是常量,它的值在创建之后不能更改,那么s的值是不是不变?
求大神解答
11 回复
#2
din毛毛2016-07-27 18:36
结果是helloworld呀!
因为这里你用s+="world",相当于在s的现有基础上加上world
#3
平常心q2016-07-27 22:41
public class Test
{
    public static void main(String[] args)
    {
        String s = "hello"; s += "world";
        
        System.out.println(s);
    }
}

在JDK 1.6中的运行结果是:
----------------------------------------------
helloworld
------------------------------------------------
#4
抹茶2016-07-28 18:09
回复 3楼 平常心q
谢谢
#5
guaidaojide2016-08-03 11:35
helloworld;
你可以参考这个链接看一下:http://wenku.baidu.com/view/bb670f2abd64783e09122bcd.html
#6
吃货丶2016-08-24 17:50
你说的字符串是final的是没错的,这里面其实是多创建了String对象。 至于为什么结果是helloworld,是更改了引用
#7
zhaxg05182016-08-26 10:42

int i;
int sum = 0;
for(i=0;i<10;i++){
sum+=i;
}
System.out.println(sum);
有什么区别的地方吗?思想或方法不同吗?
#8
libin25198852016-08-31 11:20
string类型的字符串用 + 的话就标识连接符  将2个字符串的内容链接起来 也就是helloworld
#9
libin25198852016-08-31 11:22
回复 6楼 吃货丶
字符串的 + 表示连接符    整型的 +表示2个数相加,这就是区别
#10
vsaandten2016-09-15 19:54
System.out.println(s);  //输出s的话,答案是 helloworld

但重点不是在这里,  原本的s  依然是hello,因为String是不可变的。
StringBuffer  是可以变的。
#11
HolyOrder2017-02-23 17:38
回复 7楼 zhaxg0518
int 属于基本数据类型,可变
String 属于引用类型,不可变
就是这个区别
#12
编程要有思想2017-02-27 15:01
值是:helloworld,String定义的字符串是常量,它的值在创建之后不能更改这句是对的,但是  s+=word;  这句其实是已经重新创建了另一个string对象,在内存中也是开辟了2块空间;
1