Простое практическое правило (String - это тип, представляющий символьные строки. StringBuilder - поток изменяемых символов)
Используйте String
для представления текстовых значений. По определению Java обеспечивает объединение строковых значений и, таким образом, обеспечивает некоторую оптимизацию пространства. Подумайте об этом в сценарии, когда ваше приложение имеет дело с миллионами текстовых значений во время пакетной обработки файлов. Итак, как пример.
String str1 = "Test";
String str2 = "Test";
Здесь str1 == str2 (та же ссылка)
Кроме того, оператор +
перегружен в String для создания String из разных типов. Это можно использовать при построении небольших строк (внутренне это делается с использованием StringBuilder
, поэтому не беспокойтесь), но не во время цикла.
Используйте StringBuilder
(или старый аналог StringBuffer
) только тогда, когда вы создаете целевую строку с использованием небольших фрагментов разных типов - и особенно внутри цикла - это поможет вам избежать размещения ненужных фрагментов строки в пуле строк. .
StringBuilder s1 = new StringBuilder("test");
StringBuilder s2 = new StringBuilder("test");
Здесь s1! = S2
Кроме того, я не думаю, что есть какой-то способ манипулировать кодировкой StringBuilder / Buffer - Между тем String позволяет это.
Изменить: представление сущностей Hibernate: всегда используйте String
для представления текстового типа в вашем классе. По причинам, указанным выше. Это должно прийти к вам, как мышечная память. Например, int
, float
, char
и т. Д. Для примитивных типов и String
для текстового типа. Используйте построитель только для построения строк, а не для представления типа, если это не является каким-то странным требованием.
24.06.2015
StringBuilder
. Случай 1 - jdbc - использование связываемых переменных вместо конкатенации строк; случай 2 - System.out - несколько вызововprint
илиprintln
или цепочкаSystem.out
, как вSystem.out.append("Hello ").append(name);
01.07.2015