Java 我们将在堆上创建多少对象?
将为堆上的以下字符串创建多少个对象:Java 我们将在堆上创建多少对象?,java,string,Java,String,将为堆上的以下字符串创建多少个对象: String a = "abc"; String b = "def"; String c = "ghi"; String d = a+b+c 堆上创建了多少个对象 String a = "abc"; //String literal String b = "def"; //String literal String c = "ghi"; //String literal String d = a+b+c //String d = new Stri
String a = "abc";
String b = "def";
String c = "ghi";
String d = a+b+c
堆上创建了多少个对象
String a = "abc"; //String literal
String b = "def"; //String literal
String c = "ghi"; //String literal
String d = a+b+c //String d = new StringBuilder(d).append(b).append(c).toString();
注意,返回一个对象。现在,您很容易确定创建了多少个对象
还要注意,toString
不会创建新字符串,而是返回一个已创建的字符串
注意,返回一个对象。现在,您很容易确定创建了多少个对象
还要注意的是,
toString
不会创建新字符串,它会返回一个已经创建的字符串。无从得知。可能是两个的0或1个可能的副本,除非您计算StringBuilder实例中的内部对象。无法知道。除非您将StringBuilder实例中的内部对象计算在内,否则可能是两个对象的0或1个可能的副本。new StringBuilder()。a、 b和c是文字。它们是在类加载时创建的。LOL!StackOverflow,或者如何在不动脑子的情况下获得学位@mathguy54——第二,StringBuilder和分配给d的字符串值。new StringBuilder()
是否算作对象?因此对象将是a
、b
、c
、匿名StringBuilder
和d
?@mathguy54-您没有注意。a、 b和c是文字。它们是在类加载时创建的。LOL!StackOverflow,或者如何在不动脑子的情况下获得学位@mathguy54——两个,StringBuilder和分配给d的字符串值。