ključna beseda strictfp v Javi

ključna beseda strictfp v Javi

V Javi je strictfp je modifikator, ki pomeni strogo plavajočo vejico, ki ni bil predstavljen v osnovni različici Jave, kot je bil predstavljen v Javi različici 1.2. Uporablja se v Javi za omejevanje izračunov s plavajočo vejico in zagotavljanje enakega rezultata na vsaki platformi med izvajanjem operacij v spremenljivki s plavajočo vejico. 
Izračuni s plavajočo vejico so odvisni od platforme, tj. drugačen izhod (vrednosti s plavajočo vejico) je dosežen, ko se datoteka razreda izvaja na različnih platformah (16/32/64-bitni procesorji). Za rešitev te vrste težave je bila ključna beseda strictfp uvedena v različici JDK 1.2 z naslednjim IEEE 754 standardi za izračune s plavajočo vejico. 

Opomba: Modifikator strictfp se uporablja samo z vmesniki in metodami razredov, ni pa uporaben za uporabo s spremenljivkami, kot je prikazano spodaj:

Ilustracija 1: Uporaba ključnih besed z razredi 

 strictfp class Test {   

// All concrete methods here are implicitly strictfp.
}

Ilustracija 2: Uporaba ključnih besed z vmesniki 

 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: Uporaba ključnih besed z abstraktno metodo v vmesniku

 strictfp interface Test {   
double sum();

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

Iz zgornjih ilustracij lahko potegnemo nekaj sklepov:

  • Ko je razred ali vmesnik deklariran z modifikatorjem strictfp, so vse metode, deklarirane v razredu/vmesniku, in vsi ugnezdeni tipi, deklarirani v razredu, implicitno strictfp.
  • strictfp ne more uporabiti z abstraktnimi metodami. Lahko pa se uporablja z abstraktnimi razredi/vmesniki.
  • Ker so metode vmesnika implicitno abstraktne, strictfp ni mogoče uporabiti z nobeno metodo znotraj vmesnika.
  • Od različice Jave 17 ključna beseda strictfp NI izrecno zahtevana, saj so vsi izrazi s plavajočo vejico strogo ovrednoteni.

primer: 

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  ());      }   }   

Izhod
1.006E11  

Izhod: 

Spodaj lahko vidimo izhod v konzoli.

Izhodni zaslon  

Ustvari kviz