klíčové slovo strictfp v jazyce Java

klíčové slovo strictfp v jazyce Java

V Javě strictfp je modifikátor, který znamená striktní pohyblivou desetinnou čárku, která nebyla zavedena v základní verzi Javy, protože byla představena v Javě verze 1.2. Používá se v Javě pro omezení výpočtů s plovoucí desetinnou čárkou a zajištění stejného výsledku na každé platformě při provádění operací s proměnnou s plovoucí desetinnou čárkou. 
Výpočty s pohyblivou řádovou čárkou jsou závislé na platformě, tj. různého výstupu (hodnoty s pohyblivou řádovou čárkou) je dosaženo, když je soubor třídy spuštěn na různých platformách (16/32/64bitové procesory). K vyřešení tohoto typu problému bylo ve verzi JDK 1.2 zavedeno klíčové slovo strictfp následujícím způsobem IEEE 754 standardy pro výpočty s pohyblivou řádovou čárkou. 

Poznámka: Modifikátor strictfp se používá pouze s rozhraními tříd a metodami, ale nelze jej použít s proměnnými, jak je znázorněno níže:

Ilustrace 1: Použití klíčových slov s třídami 

 strictfp class Test {   

// All concrete methods here are implicitly strictfp.
}

Obrázek 2: Použití klíčových slov s rozhraními 

 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ázek 3: Použití klíčových slov s abstraktní metodou v rozhraní

 strictfp interface Test {   
double sum();

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

Z výše uvedených ilustrací lze vyvodit některé závěry:

  • Když je třída nebo rozhraní deklarováno s modifikátorem strictfp, pak všechny metody deklarované ve třídě/rozhraní a všechny vnořené typy deklarované ve třídě jsou implicitně strictfp.
  • strictfp nemůže použít s abstraktními metodami. Lze jej však použít s abstraktními třídami/rozhraními.
  • Protože metody rozhraní jsou implicitně abstraktní, nelze strictfp použít s žádnou metodou uvnitř rozhraní.
  • Od verze Java 17 NENÍ klíčové slovo strictfp explicitně vyžadováno, protože všechny výrazy s plovoucí desetinnou čárkou jsou přísně hodnoceny.

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

Výstup
1.006E11  

výstup: 

Níže můžeme vidět výstup v konzoli.

Výstupní obrazovka  

Vytvořit kvíz