logo

strictfp atslēgvārds java

Java valodā strictfp ir modifikators, kas apzīmē stingru peldošo komatu, kas netika ieviests Java bāzes versijā, jo tas tika ieviests Java versijā 1.2. To izmanto Java, lai ierobežotu peldošā komata aprēķinus un nodrošinātu vienādu rezultātu visās platformās, veicot darbības peldošā komata mainīgajā. 
Peldošā komata aprēķini ir atkarīgi no platformas, t.i., ja klases fails tiek palaists dažādās platformās (16/32/64 bitu procesori), tiek sasniegta atšķirīga izvade (peldošā komata vērtības). Lai atrisinātu šāda veida problēmas, JDK 1.2 versijā tika ieviests strictfp atslēgvārds, veicot tālāk norādītās darbības IEEE 754 peldošā komata aprēķinu standarti. 

Piezīme: strictfp modifikators tiek izmantots tikai ar klašu saskarnēm un metodēm, bet nav piemērojams, lai lietotu ar mainīgajiem, kā parādīts tālāk:

1. attēls: Atslēgvārdu lietojums ar klasēm 



sapludināt kārtot java
strictfp class Test {  

// All concrete methods here are implicitly strictfp.
}

2. attēls: Atslēgvārdu lietošana ar saskarnēm 

java operators
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. attēls: Atslēgvārdu lietošana ar abstraktu metodi saskarnē

strictfp interface Test {  
double sum();

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

No iepriekš minētajām ilustrācijām var izdarīt dažus secinājumus:

  • Ja klase vai saskarne ir deklarēta ar strictfp modifikatoru, visas klasē/interfeisā deklarētās metodes un visi klasē deklarētie ligzdotie tipi ir netieši rangefp.
  • strictfp nevar izmantot ar abstraktām metodēm. Tomēr to var izmantot ar abstraktām klasēm/saskarnēm.
  • Tā kā saskarnes metodes ir netieši abstraktas, strictfp nevar izmantot nevienai saskarnes metodei.
  • No Java 17 versijas strictfp atslēgvārds NAV skaidri vajadzīgs, jo visas peldošā komata izteiksmes tiek stingri novērtētas.

Piemērs: 

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

Izvade
1.006E11 

Izvade: 

Zemāk mēs varam redzēt izvadi konsolē.

fontu izmēri lateksā

Izvades ekrāns' src='//techcodeview.com/img/java/66/strictfp-keyword-in-java.webp' title= 

Izveidojiet viktorīnu