A String
объект - это Java Object
, как и любой другой. Это объект с атрибутом длины, который в конечном итоге сохраняется в объекте Java как int
. Пустой String
имеет длину 0 и, следовательно, int == 0
. В реальных реализациях объект String
внутри имеет ссылку на объект char[]
(массив char
s).
Для пустого String
эта ссылка может быть null
. В теории реализация String
всегда может иметь ссылку на массив, отличную от null
, и использовать длину массива char
s в качестве String
length int
, в этом случае вы Вопрос будет эквивалентен запросу о представлении в памяти пустого массива.
См. реализацию OpenJDK , например:
private final char value[];
ссылка на массив символов
private final int count;
- это длина String
, как видно из конструктора по умолчанию, который создает пустой String
:
public String() {
this.offset = 0;
this.count = 0;
this.value = new char[0];
}
(Вам может быть интересно, почему в этой реализации есть offset
. Это означает, что подстрока может использовать тот же массив символов, что и ее родительская строка, что во многих случаях уменьшает использование памяти).