strictfp søgeord i java

strictfp søgeord i java

I Java strengfp er en modifikator, der står for strict floating-point, som ikke blev introduceret i basisversionen af ​​Java, som den blev introduceret i Java version 1.2. Det bruges i Java til at begrænse floating-point-beregninger og sikre det samme resultat på hver platform, mens der udføres operationer i floating-point-variablen. 
Floating-point-beregninger er platform-afhængige, dvs. forskelligt output (floating-point-værdier) opnås, når en klassefil køres på forskellige platforme (16/32/64-bit processorer). For at løse denne type problem blev nøgleordet strictfp introduceret i JDK 1.2 versionen ved at følge IEEE 754 standarder for flydende kommaberegninger. 

Note: strictfp modifier bruges kun med klassegrænseflader og -metoder, men er ikke anvendelig til at anvende med variabler som illustreret nedenfor:

Illustration 1: Søgeordsbrug med klasser 

 strictfp class Test {   

// All concrete methods here are implicitly strictfp.
}

Illustration 2: Søgeordsbrug med grænseflader 

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

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

Illustration 3: Søgeordsbrug med abstrakt metode i en grænseflade

 strictfp interface Test {   
double sum();

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

Nogle konklusioner kan drages ud fra ovenstående illustrationer som følger:

  • Når en klasse eller en grænseflade er erklæret med strictfp-modifikator, er alle metoder, der er erklæret i klassen/grænsefladen, og alle indlejrede typer, der er erklæret i klassen, implicit strictfp.
  • strengfp ikke kan bruges med abstrakte metoder. Det kan dog bruges med abstrakte klasser/grænseflader.
  • Da metoder til en grænseflade implicit er abstrakte, kan strictfp ikke bruges med nogen metode inde i en grænseflade.
  • Fra Java 17 version kræves strictfp nøgleord IKKE eksplicit, da alle floating-point udtryk er strengt evalueret.

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

Produktion
1.006E11  

Produktion: 

Nedenfor kan vi se outputtet i konsollen.

Output skærm  

Opret quiz