Попытка заглянуть вглубь hashCode() привела к спелеологическому путешествию по исходному коду JVM, с рассмотрением структуры объектов и привязанной блокировки (biased locking), а также удивительных последствий для производительности, связанных с использованием hashCode() по умолчанию.
В преддверии Java-конференции Joker 2015, которая начнется уже завтра, я публикую большое интервью с Алексеем Шипилёвым, инженером команды Java Performance Team из Oracle, одним из самых крутых и известных во всем мире специалистов по производительности. Ну и конечно, прекрасным спикером.
С Алексеем мы подробно поговорили:
про грядущие изменения в классе String;
про то, кто же на самом деле разрабатывает OpenSource;
про системных разработчиков и их карьеру;
про обмен технологиями, «научную» и «продуктовую» разработку;
про сложность низкоуровневых задач;
про развитие Java-сообщества и бенчмарк-войны;
про mutable vs immutable;
про Unsafe;
про JMH, бенчмарки и узкую специализацию.
Вот видео нашего разговора. Больше часа длиной, можно слушать в дороге.
Ниже под катом — расшифровка нашей беседы для тех, кто видео не очень.