String s = "hello" + "word" 生成了几个对象
时间: 2023-10-03 10:09:47 浏览: 60
这个字符串变量 s 生成了两个对象。在 Java 中,字符串是不可变的对象,对于每个字符串常量,编译器都会在编译时期确定其值,并在编译期间将其放入常量池中。因此,"hello" 和 "world" 这两个字符串常量在常量池中各自有一个对象,而字符串变量 s 在运行时期被初始化为 "helloworld",也就是在堆内存中新创建了一个字符串对象。因此,总共生成了两个对象。
相关问题
java String str="abc" 创建了几个对象 ;java String s = a+b+c+d+e 创建了几个对象
第一个问题:在Java中,创建了2个对象。一个是字符串常量池中的"abc",另一个是在堆中的String对象,它引用了字符串常量池中的"abc"。
第二个问题:在Java中,创建了5个对象。在编译时,"a"、"b"、"c"、"d"和"e"都被当作字符串常量处理,会被放入字符串常量池中。然后,在运行时,会创建4个String对象。首先,"a"和"b"会被拼接成一个新的String对象,然后再将其与"c"拼接成另一个新的String对象,以此类推,直到拼接完成。因此,总共创建5个对象。
String s = "hello" s= s+"world"这两行代码执行后,原始的String对象中的内容变了没有
这两行代码执行后,原始的String对象中的内容并没有改变。在Java中,String是不可变的,即一旦创建了一个String对象,就不能再修改它的值。因此,执行 s = s + "world" 实际上是创建了一个新的String对象,并将它的引用赋值给了s。原始的String对象仍然存在于内存中,但它的值没有发生变化。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)