У Јави стрицтфп је модификатор који означава строги покретни зарез који није уведен у основну верзију Јаве као што је уведен у Јави верзији 1.2. Користи се у Јави за ограничавање израчунавања са помичним зарезом и за обезбеђивање истог резултата на свакој платформи док се извршавају операције у променљивој са покретним зарезом.
Калкулације са помичним зарезом зависе од платформе, тј. различити излазни подаци (вредности са покретним зарезом) се постижу када се датотека класе покрене на различитим платформама (16/32/64-битни процесори). Да би се решио овај тип проблема, кључна реч стрицтфп је уведена у верзију ЈДК 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();
}
Неки закључци се могу извући из горњих илустрација на следећи начин:
- Када је класа или интерфејс декларисан са стрицтфп модификатором, онда су све методе декларисане у класи/интерфејсу и сви угнежђени типови декларисани у класи имплицитно стрицтфп.
- стрицтфп не може користити са апстрактним методама. Међутим, може се користити са апстрактним класама/интерфејсима.
- Пошто су методе интерфејса имплицитно апстрактне, стрицтфп се не може користити ни са једном методом унутар интерфејса.
- Од верзије Јаве 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
Излаз:
Испод можемо видети излаз у конзоли.
генеричност у Јави