Rumah >Java >javaTutorial >.equals() vs. == dalam Java: Bilakah Anda Harus Menggunakan Setiap?
.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:
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!