Neden't dizeleri Java ve .değişken olabilir NET?
Neden dize Java değişmez .yapmaya karar vermişler öyle mi NET (ve başka diller)? Neden değişken değil mi?
CEVAP
Effective Java, 73, 2. 4 Bölüm göre baskı:
"Bunun için çok iyi nedenleri vardır: Değişmez sınıfları değişken sınıfları daha tasarlamak, uygulamak ve kullanmak daha kolaydır. Hata daha az eğilimli olduklarını ve daha güvenli.
[...]
"Sabit nesneler basit.Değişmez bir nesne tam olarak bir durumda, oluşturulduğu durumu olabilir. Eğer tüm kurucular sınıf değişmezler kurmak emin olursanız, o zaman sizin açınızdan bu değişmezler hiçbir çaba ile her zaman için doğru kalması garanti altına alınır.
[...]
Sabit nesnelerin doğası gereği güvenli bir iş parçacığı vardır; hiçbir senkronizasyon gerektirir.Birden çok iş parçacığı onları aynı anda erişerek bozuk olamaz. Bu kadar uzak ve iş parçacığı güvenliği ulaşmak için en kolay yöntem. Aslında, hiçbir iş parçacığı hiç değişmez bir nesne üzerinde bir iş parçacığı herhangi bir etkisi gözlemleyebilirsiniz. Bu nedenle,değişmez nesneleri serbestçe paylaşılabilir
[...]
Aynı bölüm: diğer küçük noktaları
Sadece sabit nesneleri paylaşır mısınız, ama kendi iç paylaşabilirsiniz.
Sabit nesneler değişken ya da sabit olsun diğer nesneler için büyük yapı taşları olun.
Değişmez sınıfların tek gerçek dezavantajı her ayrı değer için ayrı bir nesne gerektirir.
Neden't statik yöntemler Java'da ...
Java nasıl bir değişken kendisinden fa...
Co-değişken y için x dizi dönüşüm zama...
Neden Java programcıları değişken &quo...
C#, neden olabilir'List<string...