Di Java, kaedah hashCode() memainkan peranan penting dalam menentukan pengecam unik objek. Sebagai kaedah yang wujud, kelakuannya boleh berbeza-beza bergantung pada sama ada ia ditindih oleh kelas objek atau tidak. Mari kita terokai pelaksanaan lalai bagi hashCode() apabila tidak disentuh.
Jika kaedah hashCode() tidak ditindih, HotSpot JVM (pelaksanaan yang digunakan secara meluas bagi Java) menggunakan mekanisme untuk menjana dan menyimpan nombor rawak dalam pengepala objek. Selepas panggilan ke hashCode(), nombor rawak ini diambil semula. Tingkah laku ini direka bentuk untuk menyediakan pengecam unik yang tidak dapat diramalkan dan unik untuk objek, tanpa sebarang kaitan dengan kandungan atau lokasinya.
Strategi penjanaan untuk kod cincang boleh dikawal melalui pilihan -XX:hashCode=n HotSpot JVM:
Adalah penting untuk ambil perhatian bahawa kod cincang yang dijana walaupun dengan -XX:hashCode=4 mungkin tidak secara langsung menggambarkan alamat memori objek disebabkan oleh kemungkinan pemindahan objek. Selain itu, jadual cincang yang tidak seimbang mungkin timbul jika pengedaran alamat objek kurang baik.
Atas ialah kandungan terperinci Apa yang Berlaku kepada `hashCode()` Java Object Apabila Ia Tidak Ditindih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!