SORU
19 Aralık 2011, PAZARTESİ


Neden Çift yapar.değerini, javadoc söyle değil't önbelleğe değerleri?

Bu yöntem için OpenJDK,:

public static Double valueOf(double d)

Bu javadoc diyor ki:

Döner Çift kişilik bir örnek, belirtilen double değeri temsil ediyor. Eğer yeni bir Çift örneği gerekli değildir, bu yöntem gerekir genel olarak kullanılabilecek tercihi kurucu Çift(çift), bu yöntemin muhtemel verimi önemli ölçüde daha iyi mekan ve zaman performans önbellekleme sık istenen değerler.

İşte gerçek kod:

public static Double valueOf(double d) {
    return new Double(d);
}

Önbellek bir yalan! Burada neler oluyor?

CEVAP
19 Aralık 2011, PAZARTESİ


Yöntemi var Birçok: Integer, Long, BigDecimal ve diğerleri ve belgeleri ise hep aynı: bazı durumlarda (hangi değil tanımlı), yöntemiolabilirbu da aynı sonuçları dönecektir.

AFAIK, önbelleğe alma, yalnızca tamsayı türleri için uygulanan ve -128 ile 127 arasındaki değerleri (en yaygın değerler) için önbelleğe alınan örnekler verir. BigDecimal, önbellek şu anda 10 0 değerleri için çalışıyor.

Java sürümleri daha sonraolabilirdiğer değerler/daha fazla türleri için bu davranışı genişletin. Akıllı kodunuzu daha hızlı yarın (kod daha yavaş bugün olmaz) çünkü bu kod bugün için.

Java derleyicisi, örneğin, autoboxing için kod oluştururken bu API kullanır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DrePwn

    DrePwn

    22 Temmuz 2011
  • failblog

    failblog

    17 HAZİRAN 2008
  • infiniTuts

    infiniTuts

    18 Ocak 2012