logo

الكلمة الأساسية الصارمة في جافا

في جافا com.strictfp هو مُعدِّل يرمز إلى النقطة العائمة الصارمة التي لم يتم تقديمها في الإصدار الأساسي من Java حيث تم تقديمها في Java الإصدار 1.2. يتم استخدامه في Java لتقييد حسابات الفاصلة العائمة وضمان نفس النتيجة على كل نظام أساسي أثناء تنفيذ العمليات في متغير الفاصلة العائمة. 
تعتمد حسابات الفاصلة العائمة على النظام الأساسي، أي يتم تحقيق مخرجات مختلفة (قيم الفاصلة العائمة) عند تشغيل ملف فئة على منصات مختلفة (معالجات 16/32/64 بت). لحل هذا النوع من المشكلات، تم تقديم الكلمة الأساسية الصارمة في إصدار JDK 1.2 بالمتابعة إيي 754 معايير حسابات الفاصلة العائمة. 

ملحوظة: يتم استخدام معدّل الصارم مع واجهات وأساليب الفئات فقط، ولكنه لا ينطبق على المتغيرات كما هو موضح أدناه:

اتصالات في جافا

المثال التوضيحي 1: استخدام الكلمات الرئيسية مع الطبقات 



strictfp class Test {  

// All concrete methods here are implicitly strictfp.
}

المثال التوضيحي 2: استخدام الكلمات الرئيسية مع الواجهات 

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: استخدام الكلمات الرئيسية بطريقة مجردة في الواجهة

strictfp interface Test {  
double sum();

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

يمكن استخلاص بعض الاستنتاجات من الرسوم التوضيحية أعلاه على النحو التالي:

كيفية اظهار التطبيق في الاندرويد
  • عندما يتم الإعلان عن فئة أو واجهة باستخدام معدّل الصارم، فإن جميع الأساليب المعلنة في الفئة/الواجهة وجميع الأنواع المتداخلة المعلنة في الفئة تكون ضمنيًا صارمة.
  • com.strictfp لا أستطيع يمكن استخدامها مع الأساليب المجردة. ومع ذلك، يمكن استخدامه مع الفئات/الواجهات المجردة.
  • نظرًا لأن طرق الواجهة مجردة ضمنيًا، فلا يمكن استخدام الصارم مع أي طريقة داخل الواجهة.
  • من إصدار Java 17، لم تعد الكلمة الأساسية الصارمة مطلوبة بشكل صريح حيث يتم تقييم جميع تعبيرات الفاصلة العائمة بدقة.

مثال: 

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

الإخراج
1.006E11 

الإخراج: 

أدناه يمكننا أن نرى الإخراج في وحدة التحكم.

arp-أمر

شاشة الإخراج' src='//techcodeview.com/img/java/66/strictfp-keyword-in-java.webp' title= 

إنشاء اختبار