Her yetkili Java programcısı, == yerine dize karşılaştırmak için String.equals () kullanmanız gerektiğini bilir; çünkü == referans eşitliği için denetler.
Dizelerle uğraşırken, çoğu zaman referans eşitliği yerine değer eşitliğini kontrol ediyorum. Bana göre dize değerleri sadece == kullanarak karşılaştırılabilirse, dil sezgisel olarak karşılaştırılabilir.
Karşılaştırma olarak, C # 'ın == işleci s dizgisi için değer eşitliği olup olmadığını kontrol eder . Ve gerçekten referans eşitliğini kontrol etmeniz gerekiyorsa, String.ReferenceEquals öğesini kullanabilirsiniz.
Bir başka önemli nokta, Tellerin değişmez olmasıdır, bu yüzden bu özelliğe izin vererek yapılacak hiçbir zarar yoktur.
Bunun Java’da uygulanmamasının belirli bir nedeni var mı?
==operatörü yalnızca eşleştiren Equalseğer ==operatör bu şekilde hayata geçirildi. İçin varsayılan davranış ==aynıdır ReferenceEquals(aslında, ReferenceEqualsnesne versiyonuyla tanımlanır ==)
==Nesne eşitliği veeqreferans eşitliği olan Scala'ya bakmak isteyebilirsiniz ( ofps.oreilly.com/titles/9780596155957/… ).