strictfp nøkkelord i java

strictfp nøkkelord i java

I Java strengfp er en modifikator som står for strict floating-point som ikke ble introdusert i basisversjonen av Java slik den ble introdusert i Java versjon 1.2. Den brukes i Java for å begrense flytepunktberegninger og sikre samme resultat på hver plattform mens du utfører operasjoner i flyttallvariabelen. 
Flytpunktsberegninger er plattformavhengige, dvs. forskjellig utgang (flytpunktverdier) oppnås når en klassefil kjøres på forskjellige plattformer (16/32/64-bits prosessorer). For å løse denne typen problemer ble strictfp-nøkkelordet introdusert i JDK 1.2-versjonen ved å følge IEEE 754 standarder for flyttallsberegninger. 

Note: strictfp-modifikator brukes kun med klassegrensesnitt og metoder, men kan ikke brukes med variabler som illustrert nedenfor:

Illustrasjon 1: Søkeordbruk med klasser 

 strictfp class Test {   

// All concrete methods here are implicitly strictfp.
}

Illustrasjon 2: Søkeordbruk med grensesnitt 

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

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

Illustrasjon 3: Søkeordbruk med abstrakt metode i et grensesnitt

 strictfp interface Test {   
double sum();

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

Noen konklusjoner kan trekkes fra illustrasjonene ovenfor som følger:

  • Når en klasse eller et grensesnitt er deklarert med strictfp-modifikator, er alle metoder som er deklarert i klassen/grensesnittet og alle nestede typer som er erklært i klassen, implisitt strictfp.
  • strengfp kan ikke brukes med abstrakte metoder. Den kan imidlertid brukes med abstrakte klasser/grensesnitt.
  • Siden metoder for et grensesnitt er implisitt abstrakte, kan strictfp ikke brukes med noen metode inne i et grensesnitt.
  • Fra Java 17 versjon er strictfp nøkkelord IKKE påkrevd eksplisitt da alle flyttallsuttrykk er strengt evaluert.

Eksempel: 

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

Produksjon
1.006E11  

Produksjon: 

Nedenfor kan vi se utgangen i konsollen.

Utgangsskjerm  

Lag quiz