Merhaba,
Java'da iki string ifadeyi karşılaştırırken == ifadesini kullanıyorum. Geçenlerde yazdığım bir kodda bununla ilgili bir bug ile karşılaştım. Sorunu .equals() ifadesi ile çözdüm. Java'da string ifadeleri karşılaştırırken == kullanmak yanlış bir işlem mi? Açıkcası sorunu çözdüm fakat == ile .equals() arasındaki farkı anlayabilmiş değilim.
Java'da string ifadeleri karşılaştırırken .equals() mi yoksa == mi kullanmalıyım? Hangisi daha doğru? == ve .equals() arasında ne fark var?
Toplam 1 cevap
Java dilinde,
== Referans (Reference) eşitliğini
.equals() Değer(Value) eşitliğini kontrol eder.
Eğer iki string ifadenin aynı değerlere sahip olup olmadığını kontrol edecekseniz .equals() ifadesini kullanmanız uygun olur.
== ifadesi iki string ifadenin aynı nesne olup olmadığını kontrol eder.
Performans olarak == ifadesi çok daha hızlı çalışır.
// Bu ikisi aynı değere sahiptir new String("uzmanimNet").equals("uzmanimNet") ==> true // Fakat aynı nesne (Object) değildir new String("uzmanimNet") == "uzmanimNet" ==> false // Aynı şekilde bu ikisi aynı nesne değildir. new String("uzmanimNet") == new String("uzmanimNet") ==> false // Bu ikisi aynı nesnedir. "uzmanimNet" == "uzmanimNet" ==> true