logo

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

Çıkış
1.006E11 

Çıkış: 

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

Çıkış Ekranı' src='//techcodeview.com/img/java/66/strictfp-keyword-in-java.webp' title= 

Test Oluştur