Javassa strictfp on muokkaus, joka tarkoittaa tiukkaa liukulukua, jota ei otettu käyttöön Javan perusversiossa, koska se otettiin käyttöön Java-versiossa 1.2. Sitä käytetään Javassa liukulukulaskelmien rajoittamiseen ja saman tuloksen varmistamiseen kaikilla alustoilla suoritettaessa toimintoja liukulukumuuttujalla.
Liukulukulaskelmat ovat alustariippuvaisia, eli erilainen tulos (liukulukuarvot) saavutetaan, kun luokkatiedostoa ajetaan eri alustoilla (16/32/64-bittiset prosessorit). Tämän tyyppisen ongelman ratkaisemiseksi strictfp-avainsana otettiin käyttöön JDK 1.2 -versiossa seuraavasti IEEE 754 liukulukulaskujen standardit.
python-tavut merkkijonoon
Huomautus: strictfp-muuttajaa käytetään vain luokkarajapintojen ja menetelmien kanssa, mutta sitä ei voida soveltaa muuttujien kanssa, kuten alla on kuvattu:
Kuva 1: Avainsanojen käyttö luokkien kanssa
strictfp class Test {
// All concrete methods here are implicitly strictfp.
}
Kuva 2: Avainsanojen käyttö käyttöliittymien kanssa
strictfp interface Test {
// All methods here becomes implicitly
// strictfp when used during inheritance.
}
class Car {
// strictfp applied on a concrete method
strictfp void calculateSpeed(){}
}
Kuva 3: Avainsanan käyttö abstraktilla menetelmällä käyttöliittymässä
kuka on urfi javed
strictfp interface Test {
double sum();
// Compile-time error here
strictfp double mul();
}
Yllä olevista kuvista voidaan tehdä joitain johtopäätöksiä seuraavasti:
- Kun luokka tai liitäntä on ilmoitettu strictfp-muuntimella, kaikki luokassa/rajapinnassa ilmoitetut menetelmät ja kaikki luokassa ilmoitetut sisäkkäiset tyypit ovat implisiittisesti strictfp.
- strictfp ei voi käyttää abstraktien menetelmien kanssa. Sitä voidaan kuitenkin käyttää abstraktien luokkien/rajapintojen kanssa.
- Koska käyttöliittymän menetelmät ovat implisiittisesti abstrakteja, strictfp:tä ei voida käyttää minkään menetelmän kanssa rajapinnan sisällä.
- Java 17 -versiosta alkaen strictfp-avainsanaa EI vaadita erikseen, koska kaikki liukulukulausekkeet arvioidaan tarkasti.
Esimerkki:
Java// Java program to illustrate strictfp modifier // Usage in Classes // Main class class GFG { // Method 1 // Calculating sum using strictfp modifier public strictfp double sum() { double num1 = 10e+10; double num2 = 6e+08; // Returning the sum return (num1 + num2); } // Method 2 // Main driver method public static void main(String[] args) { // Creating object of class in main() method GFG t = new GFG(); // Here we have error of putting strictfp and // error is not found public static void main method System.out.println(t.sum()); } }
Lähtö
1.006E11
Lähtö:
Alla näemme ulostulon konsolissa.
kuinka koulu keksittiin