String s = "hello" s= s+"world"这两行代码执行后,原始的String对象中的内容变了没有
时间: 2024-05-28 17:10:15 浏览: 16
这两行代码执行后,原始的String对象中的内容并没有改变。在Java中,String是不可变的,即一旦创建了一个String对象,就不能再修改它的值。因此,执行 s = s + "world" 实际上是创建了一个新的String对象,并将它的引用赋值给了s。原始的String对象仍然存在于内存中,但它的值没有发生变化。
相关问题
String s = "hello" + "word" 生成了几个对象
这个字符串变量 s 生成了两个对象。在 Java 中,字符串是不可变的对象,对于每个字符串常量,编译器都会在编译时期确定其值,并在编译期间将其放入常量池中。因此,"hello" 和 "world" 这两个字符串常量在常量池中各自有一个对象,而字符串变量 s 在运行时期被初始化为 "helloworld",也就是在堆内存中新创建了一个字符串对象。因此,总共生成了两个对象。
String不可变,如何解释String str = "Hello"; str = str + " World"; System.out.println("str=" + str);这段代码
这段代码中,首先创建了一个String对象"Hello"并将其赋值给变量str。然后通过在变量str后面使用+运算符连接了另一个字符串" World",这个操作会创建一个新的String对象,它包含了连接后的字符串"Hello World"。最后将这个新的对象又赋值给了变量str。所以,虽然String对象本身不可变,但是通过重新赋值变量来改变字符串对象的值是可行的。最终,打印出的结果是"str=Hello World"。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)