2017-09-22 16 views
8

मैं Double.isFinite() जो जावा 8 के बाद से मौजूद है के कार्यान्वयन के ऊपर देखा (क्योंकि मैं जावा 7 में कार्यक्षमता की जरूरत):Double.isFinite कार्यान्वयन विवरण - Double.MAX_VALUE की बजाय DoubleConsts.MAX_VALUE क्यों?

public static boolean isFinite(double d) { 
    return Math.abs(d) <= DoubleConsts.MAX_VALUE; 
} 

जहां DoubleConsts.MAX_VALUE मूल्य 1.7976931348623157E308 साथ double sun.misc.DoubleConsts.MAX_VALUE है। यह, Double.MAX_VALUE के बराबर हो रहा है जो के रूप में परिभाषित किया गया है:

public static final double MAX_VALUE = 0x1.fffffffffffffP+1023; // 1.7976931348623157e+308 

क्यों इस कार्यान्वयन के बजाय sun.misc -package Double.MAX_VALUE से निरंतर उपयोग करता है?

funtionality इन तरीकों पहले से sun.misc.FpUtils में स्थित था द्वारा प्रदान की:

+0

अच्छा प्रश्न, मैं समझूंगा कि क्या यह 'सार्वजनिक स्थैतिक अंतिम डबल MAX_VALUE = DoubleConsts.MAX_VALUE' के रूप में परिभाषित किया गया होगा; ताकि स्थिरांक सभी एक ही स्थान पर हों, लेकिन यह ... – Eugene

+0

दिलचस्प बात यह है कि [यह लिंक] (https://alvinalexander.com/java/jwarehouse/openjdk-8/jdk/src/share/classes/sun/ Misc/DoubleConsts.java.shtml) दिखाता है कि 'DoubleConsts.MAX_VALUE' को सीधे' java.lang.Double.MAX_VALUE' के रूप में परिभाषित किया गया है। हो सकता है कि जो भी उस समारोह को लिखता है, उसने कुछ गड़बड़ कर लिया और पहले 'DoubleConsts.MAX_VALUE' संदर्भ पाया? – TripeHound

+0

'MIN_NORMAL' का मामला मेरे लिए भी अजनबी है - 'डबल' और 'डबलकॉन्स्ट' में इस मान के लिए * अलग * शाब्दिक प्रतिनिधित्व शामिल हैं। – Hulk

उत्तर

1

कारण ज्यादातर एक ऐतिहासिक एक लगता है (Float.isFinite एक ही पैटर्न का उपयोग करता है)। इस वर्ग के सीधे Double पर निर्भर नहीं करता, यह केवल

import sun.misc.FloatConsts; 
import sun.misc.DoubleConsts; 

तो कार्यान्वयन वहाँ अधिक भावना बनाया आयात करता है - ऐसा लगता है कि यह बिल्कुल वैसा ही था:

public static boolean isFinite(double d) { 
    return Math.abs(d) <= DoubleConsts.MAX_VALUE; 
} 

भी देखें The ticket that led to moving this to Double

+0

यदि हां, तो शायद इसकी रिपोर्ट करने की आवश्यकता होगी - मामूली बग फिक्स मुझे लगता है – Eugene

संबंधित मुद्दे