java'da strictfp anahtar kelimesi

java'da strictfp anahtar kelimesi

Java'da katıfp Java sürüm 1.2'de tanıtıldığı gibi Java'nın temel sürümünde tanıtılmayan katı kayan nokta anlamına gelen bir değiştiricidir. Java'da kayan nokta hesaplamalarını kısıtlamak ve kayan nokta değişkeninde işlemler gerçekleştirirken her platformda aynı sonucu elde etmek için kullanılır. 
Kayan nokta hesaplamaları platforma bağlıdır, yani bir sınıf dosyası farklı platformlarda (16/32/64 bit işlemciler) çalıştırıldığında farklı çıktılar (kayan nokta değerleri) elde edilir. Bu tür sorunları çözmek için JDK 1.2 sürümünde strictfp anahtar sözcüğü aşağıdaki şekilde tanıtıldı: IEEE754 kayan nokta hesaplamaları için standartlar. 

Not: strictfp değiştiricisi yalnızca sınıf arayüzleri ve yöntemleriyle kullanılır ancak aşağıda gösterildiği gibi değişkenlere uygulanmak için geçerli değildir:

Çizim 1: Sınıflarla anahtar kelime kullanımı 

 strictfp class Test {   

// All concrete methods here are implicitly strictfp.
}

Çizim 2: Arayüzlerle anahtar kelime kullanımı 

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

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

Çizim 3: Bir Arayüzde Soyut yöntemle anahtar kelime kullanımı

 strictfp interface Test {   
double sum();

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

Yukarıdaki illüstrasyonlardan bazı sonuçlar şu şekilde çıkarılabilir:

  • Bir sınıf veya arayüz strictfp değiştiricisi ile bildirildiğinde, sınıfta/arayüzde bildirilen tüm yöntemler ve sınıfta bildirilen tüm iç içe geçmiş türler örtülü olarak strictfp'dir.
  • katıfp yapamamak soyut yöntemlerle kullanılabilir. Ancak soyut sınıflar/arayüzlerle kullanılabilir.
  • Bir arayüzün yöntemleri dolaylı olarak soyut olduğundan, strictfp bir arayüz içindeki herhangi bir yöntemle kullanılamaz.
  • Java 17 sürümünden itibaren, tüm kayan nokta ifadeleri sıkı bir şekilde değerlendirildiğinden, strictfp anahtar sözcüğü açıkça gerekli DEĞİLDİR.

Örnek: 

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

Çıkış
1.006E11  

Çıkış: 

Aşağıda konsoldaki çıktıyı görebiliriz.

Çıkış Ekranı  

Test Oluştur