logo

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

Produksjon
1.006E11 

Produksjon: 

Nedenfor kan vi se utgangen i konsollen.

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

Lag quiz