Rumah >Java >javaTutorial >Perbandingan Rentetan Java: `==` lwn. `.equals()` – Bila Menggunakan Mana?

Perbandingan Rentetan Java: `==` lwn. `.equals()` – Bila Menggunakan Mana?

Barbara Streisand
Barbara Streisandasal
2024-12-06 14:14:12345semak imbas

Java String Comparison:  `==` vs. `.equals()` – When to Use Which?

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!

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