מילת המפתח קפדנית ב- Java

1. הקדמה

כברירת מחדל, חישובי הנקודות הצפות בג'אווה תלויים בפלטפורמה. וכך, דיוק התוצאה של הנקודה הצפה תלוי בחומרה הנמצאת בשימוש.

במדריך זה נלמד כיצד להשתמש strictfp בג'אווה בכדי להבטיח חישובי נקודות צף עצמאיות.

2. strictfp נוֹהָג

אנחנו יכולים להשתמש ב- strictfp מילת מפתח כמשנה ללא גישה לשיעורים, שיטות או ממשקים שאינם מופשטים:

class strictfp public ScientificCalculator {... סכום כפול ציבורי (ערך כפול 1, ערך כפול 2) {ערך החזר 1 + ערך 2; } הבדל כפול ציבורי (ערך כפול 1, ערך כפול 2) {ערך החזרה 1 - ערך 2; }} ציבורי קפדני של קפדני מחשבון בטל calcMarksPercentage () {...} ממשק קפדני של קפדניות עם מעגל {מחשב כפול כפול (רדיוס כפול); }

כאשר אנו מכריזים על ממשק או כיתה עם קפדני, כל שיטות החבר שלה וסוגים מקוננים אחרים יורשים אותההתנהגות.

עם זאת, בבקשה שים לב שאסור לנו להשתמש strictfp מילת מפתח על משתנים, בונים או שיטות מופשטות.

בנוסף, במקרים בהם יש לנו סמל של סופר-על, זה לא יגרום למעמד המשנה שלנו לרשת את ההתנהגות הזו.

3. מתי להשתמש?

ג'אווה strictfp מילת מפתח מתאימה בכל פעם שאכפת לנו מההתנהגות הדטרמיניסטית של כל חישובי הנקודות הצפות

@ מבחן פומבי בטל כאשר MethodOfstrictfpClassInvoked_thenIdenticalResultOnAllPlatforms () {מחשבון מחשבון = ScientificCalculator חדש (); תוצאה כפולה = calculator.sum (23e10, 98e17); assertThat (התוצאה היא (9.800000230000001E18)); תוצאה = calculator.diff (Double.MAX_VALUE, 1.56); assertThat (התוצאה היא (1.7976931348623157E308)); }

מאז מחשבון מדעי בכיתה עושה שימוש במילת מפתח זו, מקרה הבדיקה שלעיל יעבור על כל פלטפורמות החומרה. שים לב ש אם איננו משתמשים בו, JVM חופשית להשתמש בכל דיוק נוסף הקיים בחומרת פלטפורמת היעד.

מקרה שימוש פופולרי בעולם האמיתי עבורו הוא מערכת המבצעת חישובים רפואיים רגישים ביותר.

4. מסקנה

במדריך מהיר זה דיברנו מתי ואיך להשתמש ב- strictfp מילת מפתח בג'אווה.

כרגיל, כל דגימות הקוד שהוצגו זמינות ב- GitHub.


$config[zx-auto] not found$config[zx-overlay] not found