Ты ни о чем не беспокоишься. Вот способ подумать об этой проблеме.
Предположим, у вас есть приложение, которое ничего не делает, кроме того, что весь год хэширует строки. Допустим, для этого требуется тысяча строк, все в памяти, они неоднократно вызывают hashCode () циклически, миллион раз, затем получают еще тысячу новых строк и делают это снова.
И предположим, что вероятность того, что хеш-код строки равен нулю, на самом деле намного больше 1/2 ^ 32. Я уверен, что это несколько больше, чем 1/2 ^ 32, но, скажем, это намного хуже, например, 1/2 ^ 16 (квадратный корень! Теперь это намного хуже!).
В этой ситуации у вас есть больше преимуществ от инженеров Oracle, которые улучшают способ кэширования хеш-кодов этих строк, чем кто-либо еще жив. Таким образом, вы пишете им и просите их исправить это. И они используют свою магию так, что когда s.hashCode () равен нулю, он возвращает мгновенно (даже в первый раз! Улучшение на 100%!). И скажем, что они делают это, не снижая производительность вообще для любого другого случая.
Ура! Теперь ваше приложение ... посмотрим ... на 0,0015% быстрее!
То, что раньше занимало целый день, теперь занимает всего 23 часа, 57 минут и 48 секунд!
И помните, мы создали сценарий, чтобы использовать все возможные преимущества сомнения, часто до смешной степени.
Вам это кажется, стоит?
РЕДАКТИРОВАТЬ: с тех пор, как я опубликовал это пару часов назад, я позволил одному из моих процессоров бездельничать в поисках фраз из двух слов с нулевыми хэш-кодами. До сих пор это придумали: bequirtle zorillo, хронограмма schtoff, контузивный подобный монастырю, creashaks органзин, валун головки барабана, электроаналитический осуществимый, и благоприятно неконструктивный. Это из примерно 2 ^ 35 возможностей, поэтому при идеальном распределении мы ожидаем увидеть только 8. Очевидно, что к тому времени, когда это будет сделано, у нас будет в несколько раз больше, но не намного больше. Что еще более важно, теперь я придумала несколько интересных названий групп / названий альбомов! Нет честного воровства!