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

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

Mary-Kate Olsen
Lepaskan: 2024-12-17 06:53:25
asal
172 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan