ključna riječ strictfp u Javi

ključna riječ strictfp u Javi

U Javi je strogifp je modifikator koji označava striktni pokretni zarez koji nije uveden u osnovnoj verziji Jave jer je uveden u Javi verziji 1.2. Koristi se u Javi za ograničavanje izračuna s pomičnim zarezom i osiguravanje istog rezultata na svakoj platformi tijekom izvođenja operacija u varijabli s pomičnim zarezom. 
Izračuni s pomičnim zarezom ovise o platformi, tj. drugačiji izlaz (vrijednosti s pomičnim zarezom) postiže se kada se datoteka klase izvodi na različitim platformama (16/32/64-bitni procesori). Za rješavanje ove vrste problema ključna riječ strictfp uvedena je u verziju JDK 1.2 slijedeći IEEE 754 standardi za izračune s pomičnim zarezom. 

Bilješka: modifikator strictfp koristi se samo sa sučeljima i metodama klasa, ali nije primjenjiv za primjenu s varijablama kao što je ilustrirano u nastavku:

Ilustracija 1: Upotreba ključnih riječi s klasama 

 strictfp class Test {   

// All concrete methods here are implicitly strictfp.
}

Ilustracija 2: Upotreba ključne riječi sa sučeljima 

 strictfp interface Test {    
// All methods here becomes implicitly
// strictfp when used during inheritance.
}

class Car {
// strictfp applied on a concrete method
strictfp void calculateSpeed(){}
}

Ilustracija 3: Upotreba ključne riječi s metodom sažetka u sučelju

 strictfp interface Test {   
double sum();

// Compile-time error here
strictfp double mul();
}

Iz gornjih ilustracija mogu se izvući neki zaključci kako slijedi:

  • Kada je klasa ili sučelje deklarirano modifikatorom strictfp tada su sve metode deklarirane u klasi/sučelju i svi ugniježđeni tipovi deklarirani u klasi implicitno strictfp.
  • strogifp ne može koristiti s apstraktnim metodama. Međutim, može se koristiti s apstraktnim klasama/sučeljima.
  • Budući da su metode sučelja implicitno apstraktne, strictfp se ne može koristiti ni s jednom metodom unutar sučelja.
  • Od verzije Jave 17 ključna riječ strictfp NIJE potrebna eksplicitno jer se svi izrazi s pomičnim zarezom strogo procjenjuju.

Primjer: 

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     =     10  e  +  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  ());      }   }   

Izlaz
1.006E11  

Izlaz: 

Ispod možemo vidjeti izlaz u konzoli.

Izlazni zaslon  

Napravi kviz