9 Ağustos 2016 Salı

Java Dilinde String Karşılaştırma

Java dilinde iki değişken üzerinde eşitlik denetlemek için karşılaştırma yapılırken, String veri tipinde çoğunlukla yanılgı yaşanmaktadır.

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ı

.equals() Kullanımı

Hiç yorum yok: