rangefp raktinis žodis java

rangefp raktinis žodis java

Java programoje strictfp yra modifikatorius, reiškiantis griežtą slankiojo kablelio reikšmę, kuri nebuvo įtraukta į bazinę Java versiją, kaip buvo įdiegta Java versijoje 1.2. Jis naudojamas Java apriboti slankiojo kablelio skaičiavimus ir užtikrinti tą patį rezultatą kiekvienoje platformoje atliekant operacijas su slankiojo kablelio kintamuoju. 
Slankaus kablelio skaičiavimai priklauso nuo platformos, t. y. skirtinga išvestis (slankiojo kablelio reikšmės) pasiekiama, kai klasės failas vykdomas skirtingose ​​platformose (16/32/64 bitų procesoriuose). Norint išspręsti tokio tipo problemą, JDK 1.2 versijoje buvo įvestas griežtas fp raktinis žodis IEEE 754 slankiojo kablelio skaičiavimo standartai. 

Pastaba: strictfp modifikatorius naudojamas tik su klasių sąsajomis ir metodais, bet netaikomas su kintamaisiais, kaip parodyta toliau:

1 iliustracija: Raktinių žodžių naudojimas klasėje 

 strictfp class Test {   

// All concrete methods here are implicitly strictfp.
}

2 iliustracija: Raktinių žodžių naudojimas su sąsajomis 

 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 iliustracija: Raktinių žodžių naudojimas su abstrakčiu metodu sąsajoje

 strictfp interface Test {   
double sum();

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

Iš aukščiau pateiktų iliustracijų galima padaryti keletą išvadų:

  • Kai klasė arba sąsaja deklaruojama su strictfp modifikatoriumi, visi klasėje / sąsajoje deklaruoti metodai ir visi klasėje deklaruoti įdėtieji tipai yra netiesiogiai griežti fp.
  • strictfp negali naudoti su abstrakčiais metodais. Tačiau jis gali būti naudojamas su abstrakčiomis klasėmis / sąsajomis.
  • Kadangi sąsajos metodai yra netiesiogiai abstraktūs, strictfp negalima naudoti su jokiu metodu sąsajoje.
  • Iš Java 17 versijos griežtas fp raktinis žodis NĖRA būtinas, nes visos slankiojo kablelio išraiškos yra griežtai įvertinamos.

Pavyzdys: 

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

Išvestis
1.006E11  

Išvestis: 

Žemiau matome išvestį konsolėje.

Išvesties ekranas  

Sukurti viktoriną