Kata Kunci strictfp di Java

1. Perkenalan

Secara default, perhitungan floating-point di Java bergantung pada platform. Jadi, ketepatan hasil floating-point bergantung pada perangkat keras yang digunakan.

Dalam tutorial ini, kita akan belajar cara menggunakan strictfp di Java untuk memastikan penghitungan floating-point yang tidak bergantung platform.

2. Penggunaan strictfp

Kita dapat menggunakan kata kunci strictfp sebagai pengubah non-akses untuk kelas, metode atau antarmuka non-abstrak:

public strictfp class ScientificCalculator { ... public double sum(double value1, double value2) { return value1 + value2; } public double diff(double value1, double value2) { return value1 - value2; } } public strictfp void calculateMarksPercentage() { ... } public strictfp interface Circle { double computeArea(double radius); }

Saat kita mendeklarasikan antarmuka atau kelas dengan strictfp, semua metode anggotanya dan tipe bertingkat lainnya mewarisitingkah laku.

Namun, harap diperhatikan bahwa kami tidak diizinkan menggunakan kata kunci strictfp pada variabel, konstruktor, atau metode abstrak.

Selain itu, untuk kasus ketika kita memiliki superclass yang ditandai dengannya, itu tidak akan membuat subclass kita mewarisi perilaku itu.

3. Kapan Menggunakan?

Kata kunci Java strictfp berguna setiap kali kami sangat peduli tentang perilaku deterministik dari semua perhitungan floating-point:

@Test public void whenMethodOfstrictfpClassInvoked_thenIdenticalResultOnAllPlatforms() { ScientificCalculator calculator = new ScientificCalculator(); double result = calculator.sum(23e10, 98e17); assertThat(result, is(9.800000230000001E18)); result = calculator.diff(Double.MAX_VALUE, 1.56); assertThat(result, is(1.7976931348623157E308)); }

Karena kelas ScientificCalculator menggunakan kata kunci ini, kasus uji di atas akan diteruskan ke semua platform perangkat keras. Harap dicatat bahwa jika kami tidak menggunakannya, JVM bebas menggunakan presisi ekstra yang tersedia pada perangkat keras platform target.

Kasus penggunaan dunia nyata yang populer untuknya adalah sistem yang melakukan kalkulasi obat yang sangat sensitif.

4. Kesimpulan

Dalam tutorial singkat ini, kami berbicara tentang kapan dan bagaimana menggunakan kata kunci strictfp di Java.

Seperti biasa, semua contoh kode yang disajikan tersedia di GitHub.