strictfp là gì, Từ khóa strictfp trong Java, ví dụ

strictfp là gì, Từ khóa strictfp trong Java, ví dụ

Từ khóa strictfp là gì?

Từ khóa strictfp là một non-access modifier giúp bảo đảm rằng kết quả tính toán trên các số thực sẽ có kết quả như nhau (phần sau dấu thập phân) trên các nền tảng khác nhau.

Tính toán số thực bị phụ thuộc vào các nền tảng khác nhau ví dụ như đầu ra, vi sử lý 32 hay 64 bit… Từ khóa strictfp được giới thiệu trong JDK 1.2 để giải quyết vấn đề này.

Một số lưu ý với từ khóa strictfp

strictfp chỉ sử dụng với class, interface và method.

class Test
{   
    // all concrete methods here are
    // implicitly strictfp.    
}
strictfp interface Test
{   
    // all  methods here becomes implicitly 
    // strictfp when used during inheritance.    
}
class Car
{  
    // strictfp applied on a concrete method 
    strictfp void calculateSpeed(){}
}
  • Khi một class hoặc interface được khai báo với strictfp modifier, thất cả các phương thức khai báo bên trong class/interface đó đều được áp dụng strictfp.
  • strictfp không thể sử dụng với abstract method (method trừu tượng) nhưng có thể sử dụng với abstract class/interface.
  • strictfp không thể sử dụng với bất kỳ method nào bên trong interface.

Ví dụ:

public class Test {
  // calculating sum using strictfp modifier
  public double sum() {
    double num1 = 1e+10;
    double num2 = 2e+08;
    return (num1 + num2);
  }

  public static void main(String[] args) {
    Test t = new Test();
    System.out.println(t.sum());
  }
}

kết quả:

1.02E10

 

strictfp là gì, Từ khóa strictfp trong Java, ví dụ stackjava.com

Xem thêm: https://stackjava.com/java-core

References:

stackjava.com