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ó:
herència java
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:
què és internet
- 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 = 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()); } }
Sortida
1.006E11
Sortida:
A continuació podem veure la sortida a la consola.
ordre per sql aleatori