Главная

Java


String

package java.lang.String @since 1.0
implements java.io.Serializable, Comparable<String>, CharSequence

Класс String объявлен как final, поэтому наследоваться от него не получится.

Поскольку строки неизменны, их хэшкод кэшируется в момент создания, и не требует повторного пересчета. Это делает строки отличным кандидатом для ключа в Map и они обрабатываются быстрее, чем другие объекты-ключи HashMap. Вот почему строки преимущественно используются в качестве ключей HashMap.

Следует помнить, что объекты класса String являются неизменяемыми (immutable). Поэтому, когда вам кажется, что вы меняете строку, то на самом деле вы создаёте новую строку.

В Java есть специальные классы StringBuffer и StringBuilder, который допускают изменения в строке.

Классы String, StringBuffer, StringBuilder определены в пакете java.lang и доступны автоматически без объявления импорта. Все три класса реализуют интерфейс CharSequence.

java.lang.StringBuffer @since 1.0
java.lang.StringBuilder @since 1.5

Какая основная разница между String, StringBuffer, StringBuilder?

String - неизменяемый класс, тоесть для для добавление данных в уже существующую строку, создается новый объект строки.

StringBuffer - синхронизированный
StringBuilder - нет.
Это их единственное различие.


Методы :

Полезные ссылки: