SORU
4 Mart 2011, Cuma


İ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
4 Mart 2011, Cuma


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>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FUzzyBUnnyBOoties

    FUzzyBUnnyBO

    3 EKİM 2007
  • kruno j

    kruno j

    6 Mayıs 2007
  • Menglong Tav

    Menglong Tav

    18 Temmuz 2010