string和new string的区别
时间: 2023-04-30 15:03:02 浏览: 94
string是C#中的一种内建类型,它是不可变的,意味着一旦创建了一个string对象,就不能更改它的值。而new string则是创建一个新的string对象。
使用string直接赋值的话,实际上是将该字符串常量指向已经存在的地址,如果你改变了这个变量的值,其实就是重新指向了一个新的地址。
使用new string创建一个新的string对象,如果你改变了这个变量的值,不会影响到其他变量。
总结一下:
-string是一个不可变类型,在内存中是常量
-new string是每次都会创建新的字符串对象.
相关问题
String和new String的区别
在Java中,String是一个特殊的对象,表示字符串类型的值。使用字符串字面量创建String对象时,Java会自动在内存中创建一个String对象,例如:
```
String str1 = "Hello";
```
而使用new关键字创建String对象时,则会显式地在内存中创建一个新的String对象,例如:
```
String str2 = new String("Hello");
```
这两种方式创建的String对象在功能上没有区别,但是它们在内存中的存储方式不同。使用字符串字面量创建String对象时,Java会尝试重用已有的对象,从而节省内存,而使用new关键字创建String对象时,则会在堆内存中显式地创建一个新的对象。
此外,由于字符串字面量在Java中是一个特殊的概念,所以在使用字符串字面量创建String对象时,Java会自动执行一些优化,例如将相同的字符串字面量共享为同一个对象,从而提高程序的效率。
java中string和new string的区别
在Java中,String是一个特殊的类,它是不可变的,也就是说一旦被创建,它的值就不能被改变。在Java中,String有两种创建方式:
1. 直接赋值方式:
```java
String str1 = "hello";
String str2 = "world";
```
这种方式创建的String对象会被放入Java字符串池中,如果再次有相同的字符串需要创建,Java会直接返回已经存在的字符串对象。
2. 使用new关键字创建:
```java
String str3 = new String("hello");
String str4 = new String("world");
```
这种方式创建的String对象会在堆内存中被创建,如果再次有相同的字符串需要创建,Java会创建一个新的对象。
因此,两种方式的区别在于创建的String对象的存储位置不同,直接赋值方式创建的对象存储在字符串池中,使用new关键字创建的对象存储在堆内存中。在实际开发中,应该优先使用直接赋值方式创建String对象,以提高程序的性能。
阅读全文