strictfp-trefwoord in Java

strictfp-trefwoord in Java

Op Java de striktfp is een modifier die staat voor strikte drijvende komma die niet werd geïntroduceerd in de basisversie van Java, zoals deze werd geïntroduceerd in Java-versie 1.2. Het wordt in Java gebruikt om berekeningen met drijvende komma te beperken en om op elk platform hetzelfde resultaat te garanderen bij het uitvoeren van bewerkingen in de variabele met drijvende komma. 
Drijvende-kommaberekeningen zijn platformafhankelijk, dat wil zeggen dat er verschillende uitvoer (zwevende-kommawaarden) wordt bereikt wanneer een klassenbestand op verschillende platforms wordt uitgevoerd (16/32/64-bits processors). Om dit soort problemen op te lossen, werd het trefwoord strictfp in de JDK 1.2-versie geïntroduceerd door het volgende te doen IEEE 754 standaarden voor drijvende-kommaberekeningen. 

Opmerking: strictfp modifier wordt alleen gebruikt met klasseninterfaces en methoden, maar is niet van toepassing op variabelen, zoals hieronder geïllustreerd:

Illustratie 1: Gebruik van trefwoorden met klassen 

 strictfp class Test {   

// All concrete methods here are implicitly strictfp.
}

Illustratie 2: Gebruik van trefwoorden met interfaces 

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

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

Illustratie 3: Gebruik van trefwoorden met de abstracte methode in een interface

 strictfp interface Test {   
double sum();

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

Uit de bovenstaande illustraties kunnen als volgt enkele conclusies worden getrokken:

  • Wanneer een klasse of een interface wordt gedeclareerd met de strictfp-modifier, zijn alle methoden die in de klasse/interface zijn gedeclareerd en alle geneste typen die in de klasse zijn gedeclareerd impliciet strictfp.
  • striktfp kan niet gebruikt worden met abstracte methoden. Het kan echter worden gebruikt met abstracte klassen/interfaces.
  • Omdat de methoden van een interface impliciet abstract zijn, kan strictfp niet met welke methode dan ook binnen een interface worden gebruikt.
  • Vanaf Java 17-versie is het trefwoord strictfp NIET expliciet vereist, omdat alle drijvende-komma-expressies strikt worden geëvalueerd.

Voorbeeld: 

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

Uitvoer
1.006E11  

Uitgang: 

Hieronder kunnen we de uitvoer in de console zien.

Uitvoerscherm  

Quiz maken