strictfp-Schlüsselwort in Java

strictfp-Schlüsselwort in Java

In Java die strictfp ist ein Modifikator, der für striktes Gleitkomma steht und nicht in der Basisversion von Java eingeführt wurde, sondern in Java Version 1.2. Es wird in Java verwendet, um Gleitkommaberechnungen einzuschränken und auf jeder Plattform das gleiche Ergebnis sicherzustellen, während Operationen in der Gleitkommavariablen ausgeführt werden. 
Gleitkommaberechnungen sind plattformabhängig, d. h. unterschiedliche Ausgaben (Gleitkommawerte) werden erzielt, wenn eine Klassendatei auf unterschiedlichen Plattformen (16/32/64-Bit-Prozessoren) ausgeführt wird. Um diese Art von Problem zu lösen, wurde das Schlüsselwort strictfp in der JDK-Version 1.2 wie folgt eingeführt IEEE 754 Standards für Gleitkommaberechnungen. 

Notiz: Der Modifikator strictfp wird nur mit Klassenschnittstellen und -methoden verwendet, kann jedoch nicht auf Variablen angewendet werden, wie unten dargestellt:

Abbildung 1: Verwendung von Schlüsselwörtern mit Klassen 

 strictfp class Test {   

// All concrete methods here are implicitly strictfp.
}

Abbildung 2: Verwendung von Schlüsselwörtern mit Schnittstellen 

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

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

Abbildung 3: Schlüsselwortverwendung mit der Abstract-Methode in einer Schnittstelle

 strictfp interface Test {   
double sum();

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

Aus den obigen Abbildungen lassen sich folgende Schlussfolgerungen ziehen:

  • Wenn eine Klasse oder Schnittstelle mit dem Modifizierer strictfp deklariert wird, sind alle in der Klasse/Schnittstelle deklarierten Methoden und alle in der Klasse deklarierten verschachtelten Typen implizit strictfp.
  • strictfp kann nicht mit abstrakten Methoden verwendet werden. Es kann jedoch mit abstrakten Klassen/Schnittstellen verwendet werden.
  • Da Methoden einer Schnittstelle implizit abstrakt sind, kann strictfp nicht mit Methoden innerhalb einer Schnittstelle verwendet werden.
  • Ab der Java 17-Version ist das Schlüsselwort strictfp NICHT explizit erforderlich, da alle Gleitkommaausdrücke streng ausgewertet werden.

Beispiel: 

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

Ausgabe
1.006E11  

Ausgabe: 

Unten sehen wir die Ausgabe in der Konsole.

Ausgabebildschirm  

Quiz erstellen