怎么声明字符串(String)?字符串new出来保存到哪里?如果是字符串常量保存在哪?
时间: 2023-06-01 18:06:47 浏览: 66
要声明一个字符串,可以使用以下语法:
```
String myString = "Hello World!";
```
这会创建一个名为myString的字符串变量,并将其初始化为"Hello World!"。
如果要将一个字符串实例化为一个对象,则可以使用以下语法:
```
String myString = new String("Hello World!");
```
这会将字符串"Hello World!"实例化为一个新的String对象,并将其分配给myString变量。
对于字符串常量,它们通常会被编译器放在一个所谓的"字符串池"中。在运行时,这些字符串会被重用,以便节省内存。因此,如果您声明一个字符串常量,编译器会自动将其添加到字符串池中。
相关问题
java字符串常量池保存在哪里?如何证明?
在Java中,字符串常量池是堆内存的一部分。可以通过以下代码证明:
```java
String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");
System.out.println(str1 == str2); // true,因为它们都指向字符串常量池中的同一个对象
System.out.println(str1 == str3); // false,因为str3指向堆内存中的一个新对象
```
在上面的代码中,`str1`和`str2`都指向字符串常量池中的同一个对象,因此它们是相等的。而`str3`指向堆内存中的一个新对象,所以它和`str1`不相等。这表明字符串常量池位于堆内存中。
如何获取std::string的字符串指针?
要获取std::string的字符串指针,可以使用c_str()成员函数。c_str()函数返回一个指向以null结尾的字符数组(即C风格字符串)的指针,该字符数组包含std::string对象中存储的字符串内容。
示例代码如下:
```cpp
std::string str = "Hello, World!";
const char* ptr = str.c_str();
```
在上述示例中,str是一个std::string对象,ptr是一个指向字符串内容的const char*指针。通过调用str的c_str()函数,我们可以获取到字符串的指针。
需要注意的是,返回的指针是一个指向常量字符的指针,因此不能通过该指针修改字符串的内容。如果需要修改字符串内容,可以使用其他方法,如使用std::string的成员函数进行操作。
相关推荐
![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)