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
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.
Neden bir dize ile gidiş-dönüş dönüştü...
Neden Boole yapar.Ve " değil olabi...
Neden Çift yapar.==Çift NaN.Return fal...
Yürütme Dosyaları kilitleme: Windows, ...
Java 5'te neden uçucu değil't sen...