İnsanlar neden hala Java ilkel türleri kullanıyor?
Yılından bu yana 5, int
java.lang.Integer
ve ve ve benzeri olmak sarılır böylece ilkel türleri boks/kutulama geçirdik Java.
Yeni Java projeleri son zamanlarda sık sık görüyorum (bukesinliklegerektiren bir TOTEM en az sürüm 5, 6) kullanarak int
yerine java.lang.Integer
ama çok daha rahat kullanmak için son olarak bir kaç yardımcı yöntemler için dönüştürme long
değerleri ve ark.
Neden bazıhalaJava ilkel türleri kullanılır? Herhangi somut bir yararı var mı?
CEVAP
Joshua BlochEffective JavaMadde 5: "gereksiz nesneleri oluşturma Önlemek", o mesajlar aşağıdaki kod örneği:
public static void main(String[] args) {
Long sum = 0L; // uses Long, not long
for(long i = 0; i <= Integer.MAX_VALUE; i ) {
sum = i;
}
System.out.println(sum);
}
ve 43 saniye sürüyor. İlkel içine Uzun sürdü eğer o ilkel kullanıyoruz herhangi bir gösterge ise aşağı 6.8 saniye getiriyor.
Yerel eşitlik değeri olmaması da kaygı (.equals()
==
göre oldukça ayrıntılıdır)
biziclop için:
class biziclop {
public static void main(String[] args) {
System.out.println(new Integer(5) == new Integer(5));
System.out.println(new Integer(500) == new Integer(500));
System.out.println(Integer.valueOf(5) == Integer.valueOf(5));
System.out.println(Integer.valueOf(500) == Integer.valueOf(500));
}
}
Sonuçları:
C:\Documents and Settings\glow\My Documents>java biziclop
false
false
true
false
C:\Documents and Settings\glow\My Documents>
Neden't Jenerik Java ilkel türler...
Neden Java Koleksiyonları doğrudan İlk...
Neden insanlar BÖLÜM varsa Heroku kull...
Neden MongoDB Java driver rastgele bir...
Neden Java API yerine veya bayt int kı...