paraula clau strictfp en java

paraula clau strictfp en java

En Java el strictfp és un modificador que significa estricte punt flotant que no es va introduir a la versió base de Java com es va introduir a la versió 1.2 de Java. S'utilitza a Java per restringir els càlculs de coma flotant i garantir el mateix resultat a totes les plataformes mentre es realitza operacions en la variable de coma flotant. 
Els càlculs de coma flotant depenen de la plataforma, és a dir, s'aconsegueix una sortida diferent (valors de coma flotant) quan s'executa un fitxer de classe en diferents plataformes (processadors de 16/32/64 bits). Per resoldre aquest tipus de problemes es va introduir la paraula clau strictfp a la versió 1.2 del JDK seguint el següent IEEE 754 estàndards per als càlculs de coma flotant. 

Nota: El modificador strictfp només s'utilitza amb interfícies i mètodes de classes, però no s'aplica per aplicar amb variables tal com es mostra a continuació:

Il·lustració 1: Ús de paraules clau amb les classes 

 strictfp class Test {   

// All concrete methods here are implicitly strictfp.
}

Il·lustració 2: Ús de paraules clau amb interfícies 

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

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

Il·lustració 3: Ús de paraules clau amb el mètode abstracte en una interfície

 strictfp interface Test {   
double sum();

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

De les il·lustracions anteriors es poden extreure algunes conclusions de la següent manera:

  • Quan una classe o una interfície es declara amb el modificador strictfp, tots els mètodes declarats a la classe/interfície i tots els tipus imbricats declarats a la classe són implícitament strictfp.
  • strictfp no pot utilitzar-se amb mètodes abstractes. Tanmateix, es pot utilitzar amb classes/interfícies abstractes.
  • Com que els mètodes d'una interfície són implícitament abstractes, strictfp no es pot utilitzar amb cap mètode dins d'una interfície.
  • A partir de la versió Java 17, la paraula clau strictfp NO és necessària de manera explícita, ja que totes les expressions de coma flotant s'avaluen estrictament.

Exemple: 

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

Sortida
1.006E11  

Sortida: 

A continuació podem veure la sortida a la consola.

Pantalla de sortida  

Crea un qüestionari