Java dilinde, String tipinden iki ayrı değişkeni == operatörü ile karşılaştırdığımızda, değerler aynı olmasına rağmen, sonucun false olması durumu sık yaşanan bir durumdur. (Özellikle de daha önce farklı bir dilde kod yazmış olup, sonradan Java diline geçiş yapan kişiler bu noktada yanılabilmekteler.)
Kafada Deli Sorular
== ile karşılaştırma yapmak kötü bir yöntem mi? Ne zaman == ile karşılaştırma yapılmalı? Ne zaman yapmamalıyız? .equals() metodunu kullanmak daha mı güvenli? Aralarındaki fark nedir?
== operatörünün bazen doğru çalıştığına şahit olabiliriz. Çünkü; Java platformunda bir String pool kullanılıyor ve mümkün olan durumlarda sık kullanılan Stringlerin hafıza referanslarının tekrar kullanılması sağlanıyor. Fakat; == operatörü, değerleri değil de nesnelerin aynı nesne olup olmadığını karşılaştırdığı için aynı değere sahip iki ayrı string false sonuç üretebilir. Bu yüzden == operatörü yerine .equals() metodunun kullanımı daha uygun olacaktır.
Kısacası amacımız nesnelere ait referansları karşılaştırmak ise == kullanabiliriz. Fakat çoğu zaman amaç değerleri karşılaştırmak olduğu için ihtiyacımızı .equals() metodunu kullanarak çözelim.
== Kullanımı
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
String s1 = "Araba"; | |
String s2 = "Araba"; | |
if (s1 == s2) | |
{ | |
System.out.println("Eşit"); | |
} | |
else | |
{ | |
System.out.println("Eşit Değil"); | |
} | |
// http://ercanbozkurt.blogspot.com.tr/2016/08/java-dilinde-string-karsilastirma.html |
.equals() Kullanımı
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
String s1 = "Araba"; | |
String s2 = "Araba"; | |
if (s1.equals(s2)) | |
{ | |
System.out.println("Eşit"); | |
} | |
else | |
{ | |
System.out.println("Eşit Değil"); | |
} | |
// Eşit | |
//http://ercanbozkurt.blogspot.com.tr/2016/08/java-dilinde-string-karsilastirma.html |
Hiç yorum yok:
Yorum Gönder