new string创建几个对象
时间: 2023-09-30 12:02:05 浏览: 114
在Java中,使用new关键字创建字符串对象时,如果字符串常量池中没有该字符串,则会创建一个新的字符串对象。因此,如果使用new关键字创建字符串对象,那么至少会创建一个新的对象。例如,下面的代码会创建两个不同的字符串对象:
```
String str1 = new String("hello");
String str2 = new String("hello");
```
其中,第一行代码创建了一个新的字符串对象"hello",并将其赋值给变量str1。第二行代码同样创建了一个新的字符串对象"hello",并将其赋值给变量str2。尽管这两个字符串对象的值相同,但它们在内存中的地址是不同的,因此它们是不同的对象。
相关问题
new String()会创建几个对象
在Java中,使用`new String()`语句可以创建一个新的字符串对象。具体创建多少个对象取决于具体的情况。
如果在创建字符串时使用了字符串字面量,那么Java虚拟机会首先检查字符串池中是否已经存在该字符串,如果存在,则直接返回该字符串对象的引用,不会创建新的对象。否则,Java虚拟机会在字符串池中创建一个新的字符串对象,并返回该对象的引用。
如果在创建字符串时使用了`new String()`语句,并且没有提供字符串字面量,则Java虚拟机会创建一个新的字符串对象,并返回该对象的引用。此时,只会创建一个对象。
需要注意的是,如果多次使用`new String()`语句创建相同内容的字符串对象,每次都会创建一个新的对象。因此,在 Java 中为了避免重复创建字符串对象,可以使用字符串常量或者 StringBuilder 等方式来创建字符串。
new String("a") + new String("b") 会创建几个对象
这行代码会创建三个对象。两个是字符串对象 "a" 和 "b",它们分别由 new String("a") 和 new String("b") 创建。第三个对象是拼接后的字符串对象 "ab",它是通过字符串拼接产生的。但是,由于 Java 字符串是不可变的,所以当这行代码执行完毕后,会有四个对象被创建,因为字符串 "a" 和 "b" 是不可变的,它们会一直存在于内存中,直到垃圾回收器将它们回收掉。
阅读全文