Java ile iki string ifadeyi nasıl karşılaştırırım?

murat (12492) 10 yıl önce sordu

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


alattin (16999) 10 yıl önce cevapladı

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