Rumah >Java >javaTutorial >.equals() vs. == dalam Java: Bilakah Anda Harus Menggunakan Setiap?

.equals() vs. == dalam Java: Bilakah Anda Harus Menggunakan Setiap?

Patricia Arquette
Patricia Arquetteasal
2024-12-28 01:34:09477semak imbas

.equals() vs. == in Java: When Should You Use Each?

.equals vs. ==: A Deeper Dive

Di Jawa, perbezaan antara ".equals" dan "==" ialah sering disalah ertikan. Mari kita terokai perbezaan antara pengendali ini dan fahami bila hendak menggunakan setiap satu.

Menggunakan "=="

"==" ialah pengendali kesaksamaan, dan ia membandingkan rujukan dua objek. Untuk jenis data primitif (cth., int, double), "==" menyemak sama ada nilainya sama. Walau bagaimanapun, untuk jenis bukan primitif (cth., objek), "==" membandingkan sama ada kedua-dua objek menghala ke lokasi memori yang sama.

Menggunakan ".equals"

".equals" ialah kaedah yang ditakrifkan dalam kelas "Objek", dan ia menyediakan cara umum untuk membandingkan kandungan dua objek. Secara lalai, ".equals" membandingkan nilai objek, membenarkan pelaksanaan tersuai dalam subkelas.

Mengapa ".equals" adalah Lebih Baik

Sedangkan "== " adalah mencukupi untuk jenis data primitif, ia boleh membawa kepada salah tanggapan apabila berurusan dengan objek. Contohnya:

Kod:

Integer a = new Integer(10);
Integer b = new Integer(10);

if (a == b) {
  System.out.println("They are the same");
}

if (a.equals(b)) {
  System.out.println("They are equal");
}

Output:

They are not the same
They are equal

Dalam contoh ini, "== " mengembalikan "false" kerana "a" dan "b" ialah objek berbeza dengan lokasi memori yang berbeza. Walau bagaimanapun, ".equals" mengembalikan "true" kerana ia mewakili nilai yang sama.

Amalan Terbaik

Sebagai peraturan umum, lebih baik menggunakan ".equals " untuk objek, walaupun untuk jenis data primitif. Ini memastikan tingkah laku yang konsisten dan mengelakkan potensi pepijat. Berikut ialah beberapa garis panduan:

  • Untuk jenis data primitif: Gunakan "==" untuk menyemak sama ada nilainya sama.
  • Untuk objek: Gunakan ".equals" untuk membandingkan kandungan.
  • Untuk rentetan: Gunakan ".equals" dan bukannya "==" kerana rentetan dimasukkan dan boleh mempunyai berbilang rujukan.

Atas ialah kandungan terperinci .equals() vs. == dalam Java: Bilakah Anda Harus Menggunakan Setiap?. 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