在代码中遇到字符串常量时,例如,"hello,world",编译器会使用该值创建一个String对象。Stringgreeting="你好";Stringgreeting="";//空字符串和其它对象一样,可以使用new创建String对象。Stringgreeting=newString("你好");
时间: 2023-05-20 17:03:23 浏览: 42
回答:是的,编译器会使用该值创建一个String对象。在Java中,字符串常量是不可变的,因此每次对字符串进行修改时,都会创建一个新的String对象。可以使用空字符串或者使用new关键字创建一个新的String对象。
相关问题
怎么声明字符串(String)?字符串new出来保存到哪里?如果是字符串常量保存在哪?
要声明一个字符串,可以使用以下语法:
```
String myString = "Hello World!";
```
这会创建一个名为myString的字符串变量,并将其初始化为"Hello World!"。
如果要将一个字符串实例化为一个对象,则可以使用以下语法:
```
String myString = new String("Hello World!");
```
这会将字符串"Hello World!"实例化为一个新的String对象,并将其分配给myString变量。
对于字符串常量,它们通常会被编译器放在一个所谓的"字符串池"中。在运行时,这些字符串会被重用,以便节省内存。因此,如果您声明一个字符串常量,编译器会自动将其添加到字符串池中。
String s = "hello" + "word" 生成了几个对象
这个字符串变量 s 生成了两个对象。在 Java 中,字符串是不可变的对象,对于每个字符串常量,编译器都会在编译时期确定其值,并在编译期间将其放入常量池中。因此,"hello" 和 "world" 这两个字符串常量在常量池中各自有一个对象,而字符串变量 s 在运行时期被初始化为 "helloworld",也就是在堆内存中新创建了一个字符串对象。因此,总共生成了两个对象。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)