Rumah >Java >javaTutorial >Bilakah Saya Harus Menggunakan `.equals()` Daripada `==` dalam Java?

Bilakah Saya Harus Menggunakan `.equals()` Daripada `==` dalam Java?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-17 06:53:25172semak imbas

When Should I Use `.equals()` Instead of `==` in Java?

Memahami Perbezaan antara ".equals" dan "=="

Arahan pensyarah anda untuk menggunakan .equals dan bukannya == dalam Java menimbulkan perbezaan penting antara kesamaan rujukan dan kesamaan nilai.

Rujukan Kesamaan (==)

Pengendali == membandingkan rujukan yang dikaitkan dengan dua objek. Ia menyemak sama ada kedua-dua objek merujuk kepada lokasi memori yang sama. Ini terpakai kepada jenis bukan primitif (seperti String, Integer, dll.), di mana setiap objek mempunyai rujukan unik.

Contoh:

Integer o1 = 10;
Integer o2 = 10;
System.out.println(o1 == o2); // false

Walaupun o1 dan o2 memegang nilai yang sama, ia bukanlah objek yang sama dalam ingatan. Oleh itu, == mengembalikan palsu.

Kesamaan Nilai (.sama)

Kaedah .equals, sebaliknya, membolehkan anda membandingkan nilai objek. Ia menyemak sama ada dua objek mempunyai kandungan yang sama, tanpa mengira rujukannya.

Contoh:

String x = "hello";
String y = new String("hello");
System.out.println(x.equals(y)); // true

Di sini, x dan y ialah objek yang berbeza tetapi mempunyai yang sama nilai. .equals membandingkan nilainya dan mengembalikan true.

Mengatasi .equals Kaedah:

Selain itu, .equals boleh ditindih dalam kelas tersuai, membolehkan anda menentukan logik anda sendiri untuk perbandingan nilai. Ini membolehkan anda menyesuaikan gelagat kesamarataan untuk jenis tertentu.

Mengapa .equals Diutamakan:

Menggunakan .equals biasanya lebih diutamakan daripada == atas sebab berikut:

  • Ia memastikan kesaksamaan nilai, tanpa mengira identiti objek.
  • Ia membolehkan logik perbandingan tersuai melalui penggantian.
  • Ia membantu menghalang kemungkinan pengecualian penuding nol apabila kedua-dua objek mungkin batal.

Dalam contoh pensyarah anda, .equals disyorkan untuk membandingkan dua objek integer kerana ia memastikan bahawa objek mempunyai nilai yang sama, walaupun ia merujuk kepada lokasi memori yang berbeza.

Atas ialah kandungan terperinci Bilakah Saya Harus Menggunakan `.equals()` Daripada `==` dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn