logo

kľúčové slovo strictfp v jazyku Java

V jazyku Java strictfp je modifikátor, ktorý znamená striktnú pohyblivú desatinnú čiarku, ktorá nebola zavedená v základnej verzii Java, ako bola predstavená vo verzii Java 1.2. Používa sa v Jave na obmedzenie výpočtov s pohyblivou rádovou čiarkou a zabezpečenie rovnakého výsledku na každej platforme pri vykonávaní operácií s premennou s pohyblivou rádovou čiarkou. 
Výpočty s pohyblivou rádovou čiarkou sú závislé od platformy, t. j. odlišný výstup (hodnoty s pohyblivou rádovou čiarkou) sa dosiahne, keď je súbor triedy spustený na rôznych platformách (16/32/64-bitové procesory). Na vyriešenie tohto typu problému bolo zavedené kľúčové slovo strictfp vo verzii JDK 1.2 nasledujúcim spôsobom IEEE 754 štandardy pre výpočty s pohyblivou rádovou čiarkou. 

Poznámka: Modifikátor strictfp sa používa iba s rozhraniami a metódami tried, ale nedá sa použiť s premennými, ako je znázornené nižšie:

Ilustrácia 1: Použitie kľúčových slov s triedami 



strictfp class Test {  

// All concrete methods here are implicitly strictfp.
}

Obrázok 2: Použitie kľúčových slov s rozhraniami 

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

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

Obrázok 3: Použitie kľúčových slov s abstraktnou metódou v rozhraní

strictfp interface Test {  
double sum();

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

Z vyššie uvedených ilustrácií možno vyvodiť niektoré závery:

  • Keď je trieda alebo rozhranie deklarované s modifikátorom strictfp, potom všetky metódy deklarované v triede/rozhraní a všetky vnorené typy deklarované v triede sú implicitne strictfp.
  • strictfp nemôže použiť s abstraktnými metódami. Môže sa však použiť s abstraktnými triedami/rozhraniami.
  • Keďže metódy rozhrania sú implicitne abstraktné, strictfp nemožno použiť so žiadnou metódou vo vnútri rozhrania.
  • Od verzie Java 17 sa kľúčové slovo strictfp výslovne nevyžaduje, pretože všetky výrazy s pohyblivou rádovou čiarkou sú prísne hodnotené.

Príklad: 

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

Výstup
1.006E11 

výstup: 

Nižšie vidíme výstup v konzole.

Výstupná obrazovka' src='//techcodeview.com/img/java/66/strictfp-keyword-in-java.webp' title= 

Vytvoriť kvíz