如何在java中创建字符串对象

时间:2014-11-24 11:24:16

标签: java

java中的

String s="abc"。在内存中发生了任何对象的创建与否以及“s”这里的变量或对象,以及与String s=new String("abc");相同的问题。

2 个答案:

答案 0 :(得分:2)

当你声明:

时,java中有一个名为String Memory Pool的东西
String str1="abc";

它转到那个内存池而不是堆上。但是当你写道:

String str2=new String("abc");

它在堆上创建一个完整的对象,如果你再次写:

String str3 = "abc"; 

它不会在池上创建任何更多对象,如果该文字已经存在,它将检查池,它会将其分配给它。但写作:

String str4 = new String("abc");

将再次在堆上创建一个新对象

关键是:

在写入时,将始终在堆上创建一个新对象:

new String("abc");

但是如果你不使用关键字new直接分配字符串,它就会从池中引用(如果它存在于池中)

答案 1 :(得分:0)

String类表示字符串。 Java程序中的所有字符串文字(例如“abc”)都实现为此类的实例。

String Java Doc