Kata Kunci ketatfp di Jawa

1. Pengenalan

Secara lalai, pengiraan titik terapung di Java bergantung pada platform. Oleh itu, ketepatan hasil floating-point bergantung pada perkakasan yang sedang digunakan.

Dalam tutorial ini, kita akan belajar bagaimana menggunakan ketatfp di Java untuk memastikan pengiraan titik apungan bebas platform.

2. Penggunaan ketatfp

Kita boleh menggunakan kata kunci ketatfp sebagai pengubah tanpa akses untuk kelas, kaedah atau antara muka yang tidak 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); }

Apabila kita mengisytiharkan antara muka atau kelas dengan ketatfp, semua kaedah anggotanya dan jenis bersarang lain mewarisi itutingkah laku.

Walau bagaimanapun, harap maklum bahawa kami tidak dibenarkan menggunakan kata kunci ketatfp pada pemboleh ubah, konstruktor atau kaedah abstrak.

Selain itu, untuk kes-kes apabila kita mempunyai kelas super yang ditandai dengannya, itu tidak akan menjadikan subkelas kita mewarisi tingkah laku tersebut.

3. Bilakah Digunakan?

Kata kunci Java ketatfp sangat berguna setiap kali kita mengambil berat tentang tingkah laku deterministik dari semua pengiraan titik terapung:

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

Oleh kerana kelas ScientificCalculator menggunakan kata kunci ini, kes ujian di atas akan diteruskan ke semua platform perkakasan. Harap maklum bahawa jika kami tidak menggunakannya, JVM bebas menggunakan ketepatan tambahan yang tersedia pada perkakasan platform sasaran.

Casing penggunaan dunia nyata yang popular adalah sistem yang menjalankan pengiraan ubat yang sangat sensitif.

4. Kesimpulan

Dalam tutorial ringkas ini, kami membincangkan tentang kapan dan bagaimana menggunakan kata kunci ketatfp di Java.

Seperti biasa, semua contoh kod yang disajikan boleh didapati di GitHub.