2013-12-01 3 views
1

Сколько объектов будет создать для следующей строки в куче:Сколько объектов мы создадим на куче?

String a = "abc"; 
String b = "def"; 
String c = "ghi"; 
String d = a+b+c 

Сколько объектов создаются в куче?

+0

Невозможно узнать. Может быть 0 или 1 – Ingo

+0

Возможный дубликат http://stackoverflow.com/questions/7370593/how-many-string-objects-will-be-created – Developer

+0

Два, если вы не подсчитаете внутренние объекты в экземпляре StringBuilder. –

ответ

1
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(); 

Обратите внимание, что StringBuilder#append возвращает объект . Теперь вам легко определить, сколько объектов было создано ..

Также обратите внимание, что toString не создает новую строку, она возвращает уже созданную.

+0

Использует ли 'new StringBuilder()' count as object? – joshreesjones

+0

@ mathguy54 Да. – Maroun

+0

Таким образом, объекты будут 'a',' b', 'c', анонимным' StringBuilder' и 'd'? – joshreesjones

Смежные вопросы