По умолчанию использует алгоритм Парка-Миллера.
Hashcode - int переменная.
Коллизия - ситуация, когда у разных объектов одинаковые хеш-коды. Вероятность возникновения коллизии зависит от используемого алгоритма генерации хеш-кода.
public native int hashCode(); - реализован на реализован на native языке - C++.
Для int hashcode будет равен его значению.
Если метод не переопределен, будет использоваться Адрес в памяти. При каждом запуске программы hashcode будет разным место в памяти будет случайным.