Di Jawa, primitif (jenis data primitif) merujuk kepada jenis data asas dalam bahasa Java, seperti int, double, char, dll. Sebaliknya, terdapat jenis data rujukan, seperti String, Objek, dll. Tidak seperti jenis data rujukan, jenis primitif tidak perlu dibandingkan menggunakan kaedah .equals(). Ini kerana pembolehubah jenis primitif menyimpan nilai sebenar, bukan rujukan objek. Oleh itu, apabila membandingkan dua pembolehubah jenis primitif, anda boleh terus menggunakan operator == untuk perbandingan, kerana ia membandingkan sama ada nilai itu sendiri adalah sama. Untuk jenis data rujukan, anda perlu menggunakan kaedah .equals(), kerana ia membandingkan sama ada rujukan objek menghala ke objek yang sama. Inilah sebabnya mengapa dalam Java, jenis primitif tidak memerlukan kaedah .equals().
Jadi dalam java jika anda membandingkan rentetan anda perlu menggunakan kaedah .equals kerana == hanya membandingkan alamat memori dan bukan kandungan. Tidak mengapa, saya boleh memahaminya. Tapi yang saya tak faham kenapa yang original takde masalah yang sama. Bagaimanakah kita boleh menggunakan operator == dengan primitif.
Ini disebabkan oleh fakta bahawa primitif bukanlah objek Java penuh, jadi ia "diluluskan oleh nilai", manakala objek "dilalui melalui rujukan".
Selain itu, anda tidak boleh menggunakan fungsi .equals()
pada primitif kerana ia bukan objek Java instantiated sepenuhnya daripada kelas dan memerlukan fungsi ditakrifkan dalam kelas/objek.
Kebanyakan primitif mempunyai jenis objek yang setara, contohnya Integer
ialah jenis objek yang dilaksanakan sepenuhnya int
, dalam Java moden anda akan mendapat jenis objek bernama AutoboxingInteger
是 int
的完整实现对象类型,在现代 Java 中,您会得到名为 自动装箱。所以如果你不使用int
,而是使用Integer
类型,那么你可以调用.equals()
. Jadi jika anda tidak menggunakan int
, tetapi menggunakan jenis Integer
, maka anda boleh memanggil
Ini adalah beberapa pecahan maklumat secara rawak, tetapi saya percaya jika anda menjumlahkannya, diharapkan anda akan mendapat gambaran tentang perkara yang sedang berlaku. 🎜
Atas ialah kandungan terperinci Mengapakah primitif tidak memerlukan kaedah .equals dalam java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!