Prísne kľúčové slovo v Jave
1. Úvod
Štandardne sú výpočty pohyblivej rádovej čiarky v Jave závislé na platforme. A tak presnosť výsledku s pohyblivou rádovou čiarkou závisí od použitého hardvéru.
V tomto tutoriále sa dozvieme, ako na to použitie strictfp v Jave, aby sa zabezpečili výpočty pohyblivej rádovej čiarky nezávislé na platforme.
2. strictfp Využitie
Môžeme použiť strictfp kľúčové slovo ako modifikátor neprístupu pre triedy, iné ako abstraktné metódy alebo rozhrania:
public strictfp class ScientificCalculator {... public double sum (double value1, double value2) {return value1 + value2; } public double diff (dvojitá hodnota1, dvojitá hodnota2) {návratová hodnota1 - hodnota2; }} public strictfp void CalculateMarksPercentage () {...} verejné strictfp rozhranie Circle {double computeArea (double radius); }
Keď deklarujeme rozhranie alebo triedu s strictfp, zdedia všetky jeho členské metódy a ďalšie vnorené typysprávanie.
Avšak prosím Všimnite si, že to nesmieme používať strictfp kľúčové slovo o premenných, konštruktoroch alebo abstraktných metódach.
Navyše v prípadoch, keď máme označenú nadtriedu, naša podtrieda toto správanie nededí.
3. Kedy použiť?
Java strictfp kľúčové slovo sa hodí, kedykoľvek nám veľmi záleží na deterministickom správaní všetkých výpočtov s pohyblivou rádovou čiarkou:
@Test public void whenMethodOfstrictfpClassInvoked_thenIdenticalResultOnAllPlatforms () {ScientificCalculator calculator = new ScientificCalculator (); dvojitý výsledok = calculator.sum (23e10, 98e17); assertThat (výsledok, je (9.800000230000001E18)); výsledok = calculator.diff (Double.MAX_VALUE, 1,56); assertThat (výsledok, je (1.7976931348623157E308)); }
Keďže ScientificCalculator class využíva toto kľúčové slovo, vyššie uvedený testovací prípad prejde na všetky hardvérové platformy. Vezmite prosím na vedomie, že ak ju nepoužívame, JVM môže voľne použiť akúkoľvek presnosť dostupnú na hardvéri cieľovej platformy.
Populárnym prípadom použitia v reálnom svete je systém, ktorý vykonáva vysoko citlivé lekárske výpočty.
4. Záver
V tomto rýchlom návode sme si povedali, kedy a ako používať strictfp kľúčové slovo v Jave.
Ako obvykle sú všetky prezentované ukážky kódu dostupné na GitHub.