A strictfp kulcsszó Java-ban
1. Bemutatkozás
Alapértelmezés szerint a Java lebegőpontos számításai platformfüggőek. Tehát a lebegőpontos pontosság a használt hardvertől függ.
Ebben az oktatóanyagban megtanuljuk, hogyan kell használat szigorúfp a Java-ban platformfüggetlen lebegőpontos számítások biztosítása érdekében.
2. szigorúfp Használat
Használhatjuk a szigorúfp kulcsszó nem hozzáférési módosítóként osztályokhoz, nem absztrakt módszerekhez vagy interfészekhez:
public strictfp osztály ScientificCalculator {... nyilvános dupla összeg (dupla érték1, dupla érték2) {return value1 + value2; } public double diff (double value1, double value2) {return value1 - value2; }} public strictfp void calcMarkPercentage () {...} public strictfp interfész Kör {kettős számítási terület (dupla sugár); }
Amikor deklarálunk egy interfészt vagy osztályt a strictfp, összes tagmódszere és más beágyazott típusok öröklikviselkedés.
Kérem azonban vegye figyelembe, hogy nem használhatjuk szigorúfp kulcsszó a változókra, a konstruktorokra vagy az absztrakt módszerekre.
Ezenkívül azokra az esetekre, amikor van szuperosztályunk megjelölve, az alosztályunk nem örökli meg ezt a viselkedést.
3. Mikor kell használni?
Jáva szigorúfp kulcsszó hasznos, amikor nagyon sokat érdekel az összes lebegőpontos számítás determinisztikus viselkedése:
@Test public void whenMethodOfstrictfpClassInvoked_thenIdenticalResultOnAllPlatforms () {ScientificCalculator calculator = new ScientificCalculator (); kettős eredmény = számológép.összeg (23e10, 98e17); assertThat (az eredmény: (9.800000230000001E18)); eredmény = számológép.diff (Dupla.MAX_ÉRTÉK, 1.56); assertThat (az eredmény: (1,7976931348623157E308)); }
Mivel a Tudományos számológép osztály használja ezt a kulcsszót, a fenti teszteset minden hardverplatformon átmegy. Kérjük, vegye figyelembe, hogy ha nem használjuk, akkor a JVM szabadon alkalmazhat bármilyen extra pontosságot, amely elérhető a célplatform hardverén.
Népszerű valóságos használati esete a rendkívül érzékeny gyógyászati számításokat végző rendszer.
4. Következtetés
Ebben a gyors bemutatóban arról beszéltünk, hogy mikor és hogyan kell használni a szigorúfp kulcsszó Java-ban.
Szokás szerint az összes bemutatott kódminta elérhető a GitHubon.