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.


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