Под "непустым" подразумевается в этом вопросе строка, содержащая хотя бы один ненулевой символ.
Для справки, здесь реализация hashCode
:
1493 public int hashCode() {
1494 int h = hash;
1495 if (h == 0) {
1496 int off = offset;
1497 char val[] = value;
1498 int len = count;
1499
1500 for (int i = 0; i < len; i++) {
1501 h = 31*h + val[off++];
1502 }
1503 hash = h;
1504 }
1505 return h;
1506 }
и алгоритм указан в документации.
Прежде чем произойдет переполнение целого числа, ответ прост: нет. Но то, что я хотел бы знать, состоит в том, что из-за переполнения целых чисел для непустой строки может быть хэш-код нуля? Вы можете построить один?
То, что я ищу, в идеале должно быть математической демонстрацией (или ссылкой на нее) или алгоритмом построения.