Он появляется в java.lang.String.java, что Java будет генерировать только хэш-код, а затем сохранить его после вызова hashcode(), но почему бы просто не сделать hashcode в конструкторе?Почему хэш-код Java String генерируется lazy?
Соответствующий код:
if (h == 0 && count > 0) {
int off = offset;
char val[] = value;
int len = count;
for (int i = 0; i < len; i++) {
h = 31*h + val[off++];
}
hash = h;
}
может по большей части будут размещены в конструкторе.
Если вы найдете приемлемый ответ, вы можете отметить его, чтобы люди знали, что у вас есть ответ на ваш вопрос. –