Perbandingan Rujukan Objek lwn. Kesamaan Nilai dalam Java
Di Jawa, menentukan kesamaan objek boleh mengelirukan apabila membandingkan rentetan menggunakan operator == . Mari kita mendalami tingkah laku yang kelihatan tidak jelas ini.
Pertimbangkan senario berikut:
// Define a String array String[] parts = {"231", "CA-California", "Sacramento-155328", "aleee", "Customer Service Clerk", "Alegra Keith.doc.txt"}; // Perform comparison if ("231" == parts[0]) { // This comparison will evaluate to false }
Anehnya, perbandingan itu kembali palsu. Ini kerana operator == dalam Java menyemak kesamaan rujukan objek, bukan kesamaan nilai. Tidak seperti dalam banyak bahasa lain, rentetan Java adalah objek. Apabila anda membandingkan dua rentetan menggunakan ==, ia membandingkan alamat memori di mana objek tersebut berada, bukan nilai rentetan sebenar.
Untuk membandingkan nilai sebenar rentetan, anda harus menggunakan kaedah String.equals:
if ("231".equals(parts[0])) { // This comparison will evaluate to true }
Kaedah ini menyemak kandungan rentetan, bukan rujukan objeknya.
Ingat, untuk semua objek dalam Java, operator == menyemak kesamaan rujukan, manakala kaedah sama membandingkan nilai objek sebenar. Adalah penting untuk menggunakan equals apabila menyemak kesamaan objek, kerana == boleh membawa kepada kesimpulan yang salah apabila membandingkan rujukan objek.
Atas ialah kandungan terperinci Perbandingan Rentetan Java: `==` lwn. `.equals()` – Bila Menggunakan Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!