Умножение промежуточного хеш-кода на заданное число как часть каждой комбинации будет означать, что порядок комбинированных кодов не будет иметь никакого значения.
Если вы только что сделали эксклюзив или для трех частей имени,тогда «Джон Уильям Джеймс» даст тот же хэш-код, что и «Джеймс Уильям Джон».
397
выбрано потому, что это простое число, достаточно большое, чтобы вызвать переполнение хэш-кода, и это помогаетсгенерировать правильное распределение хеш-кодов.
Переполнение является причиной, по которой этот код должен находиться внутри блока unchecked
.