logo

strictfp kulcsszó java-ban

A Java nyelven a strictfp egy olyan módosító, amely a szigorú lebegőpontot jelöli, amelyet a Java alapverziójában nem vezettek be, mint ahogy a Java 1.2-es verziójában. Javaban használják a lebegőpontos számítások korlátozására, és ugyanazt az eredményt biztosítják minden platformon, miközben a lebegőpontos változóban hajtanak végre műveleteket. 
A lebegőpontos számítások platformfüggőek, azaz különböző kimenetek (lebegőpontos értékek) érhetők el, ha egy osztályfájlt különböző platformokon (16/32/64 bites processzorokon) futtatnak. Az ilyen típusú problémák megoldására a JDK 1.2-es verziójában a strictfp kulcsszót a következőképpen vezettük be IEEE 754 szabványok a lebegőpontos számításokhoz. 

Jegyzet: A strictfp módosító csak osztályfelületekkel és metódusokkal használható, de nem alkalmazható változókkal, ahogyan az alábbiakban látható:

1. ábra: Kulcsszóhasználat osztályokkal 



strictfp class Test {  

// All concrete methods here are implicitly strictfp.
}

2. ábra: Kulcsszóhasználat interfészekkel 

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

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

3. ábra: Kulcsszóhasználat absztrakt módszerrel egy felületen

strictfp interface Test {  
double sum();

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

A fenti ábrákból néhány következtetés vonható le:

script shell végrehajtása
  • Ha egy osztályt vagy interfészt szigorúfp módosítóval deklarálunk, akkor az osztályban/interfészben deklarált összes metódus és az osztályban deklarált összes beágyazott típus implicit szigorúfp.
  • strictfp nem lehet absztrakt módszerekkel használható. Azonban használható absztrakt osztályokkal/interfészekkel.
  • Mivel az interfész metódusai implicit absztraktak, a strictfp nem használható egyetlen interfészen belüli metódussal sem.
  • A Java 17-es verziótól a strictfp kulcsszó NEM kötelező kifejezetten, mivel minden lebegőpontos kifejezés szigorúan kiértékelésre kerül.

Példa: 

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

Kimenet
1.006E11 

Kimenet: 

Alább láthatjuk a kimenetet a konzolban.

Kimeneti képernyő' src='//techcodeview.com/img/java/66/strictfp-keyword-in-java.webp' title= 

Kvíz létrehozása