logo

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:

gedeeltelijke afhankelijkheid

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 = 10e+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: 

hoe oud is pete davidson

Hieronder kunnen we de uitvoer in de console zien.

Uitvoerscherm' src='//techcodeview.com/img/java/66/strictfp-keyword-in-java.webp' title= 

Quiz maken