首頁 > Java > java教程 > 主體

Java中的嚴格fp

WBOY
發布: 2024-08-30 15:36:00
原創
386 人瀏覽過

Java中strictfp的主要功能是在浮點變數運算時在每個平台上提供相同的結果。回到過去,當 James Gosling 和他的團隊開發 Java 時,該語言的主要方面之一是平台獨立性。在不同的機器上編譯、解釋和執行相同的程式碼,並確保結果相同且不被處理器操縱。

在不同平台上計算浮點時,由於CPU處理浮點的硬體能力,結果可能會有所不同。 Strictfp 確保您在所有平台上獲得精確的浮點輸出。隨著 IEEE 754(浮點運算標準),strictfp 在 JVM 1.2 版本中引入。

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

對於不同的CPU,標準精度可能會有所不同;對於 x86 機器,32 位元精度與 62 位元精度不同,依此類推。 strictfp的使用確保了當相同的程式碼在不同的平台上執行時,輸出不會因為精度不同而被操縱,這在更高精度的平台上運作得很好。將 strictfp 理解為 FP Strict,意思是 Floating Point Strict。

Strictfp 中的語法

strictfp 很簡單,以關鍵字 strictfp 開頭。以下是類別、介面和方法的語法:

1。班級

strictfp class sample1{
// code here will me implicitly strictfp.
}
登入後複製

2。介面

strictfp interface sample2 {
// methods here will be implicitly strictfp
}
登入後複製

3。方法

class India {
strictfp void population()
}
登入後複製

在上面的範例中,我們只是為類別和介面添加了關鍵字 strictfp。上面的範例示範如何必須使用 strictfp 關鍵字,以下是不使用 strictfp 關鍵字的範例。

class sample1{
strictfp float a;
}
登入後複製

在這裡,為變數分配 strictfp 關鍵字是行不通的。它應嚴格與類別或介面一起傳遞。

在 Strictfp 中實作的範例

以下是在 Strictfp 中實現的範例:

範例#1

我們現在將透過在程式碼範例中實作相同的方法來示範 strictfp 關鍵字的工作原理。  以下是相同的程序:

代碼:

public class Test  {
public strictfp double add()
{
double number1 = 10e+10;
double number2 = 6e+08;
return (number1+number2);
}
public static strictfp void main(String[] args)
{
Test example = new Test();
System.out.println(example.add());
}
}
登入後複製

輸出:

Java中的嚴格fp

對上述程式碼的解釋:我們從 Test 類別定義開始,然後建立了一個具有 double 資料類型的方法,並為其分配了 strictfp 關鍵字。在 add() 中,我們建立了兩個名為 number1 和 number2 的雙精確度資料類型變量,在下一行中,該方法傳回這兩個變數的相加。後來我們有了我們的主類,它也配備了 strictfp,並且裡面的程式碼區塊繼承了 strictfp 屬性。創建了我們類別的一個新對象,最後,我們有了輸出列印語句,它只是列印兩個變數的相加值。

範例#2

現在讓我們在不同的程式中示範相同的 strictfp 關鍵字。這裡我們不做任何計算;相反,我們將在 float 變數中傳遞一個值,並使用 strictfp 關鍵字列印它。

代碼:

public class new_strictfp {
float f = 9.381f;
strictfp public void displayValue(){
System.out.println(f);
}
public static void main(String[] args) {
new_strictfp Demo = new new_strictfp ();
Demo.displayValue();
}
}
登入後複製

輸出:

Java中的嚴格fp

上面程式碼的解釋:這是我們實作 strictfp 關鍵字的另一個例子。我從公共類別開始,創建了一個具有浮點資料類型和值的新變數。然後創建一個方法來列印浮點值,並且在我們的主類別中,我們初始化了我們類別的一個物件。在物件之後,我們有輸出語句,它呼叫我們先前建立的方法。在這裡,我們創建的方法啟用了 strictfp,這意味著分配的浮點值將按原樣列印。

要記住的規則

與任何程式語言中的任何其他關鍵字一樣,Java 中的 strictfp 有其用途和規則,為了達到預期結果,必須遵循指定的規則。  現在讓我們在實作關鍵字之前先了解一些規則。

  • strictfp 關鍵字不能用建構子實作;它與類別、介面和方法配合得很好。
  • 當使用介面或類別宣告 strictfp 時,它將為其中的所有方法和巢狀類型隱含實作 strictfp。
  • strictfp 可以用抽象類別或介面實現,但不能用抽象方法實作。
  • 與建構子一起,strictfp 不能與變數一起使用;參考前面提到的範例程式碼。

遵循上述規則將確保 strictfp 的正確使用,並避免浮點精度可能產生不同結果的差異。

Java 中 Strictfp 的優點

以下是該關鍵字帶來的優勢。從開發人員的角度來看,使用 strictfp 的優點是多種多樣的;下面列出了一些:

  • 各種機器上浮點結果的準確性。
  • strictfp 利用浮點運算的精確度和速度。
  • 它對 32 位和 64 位完全不偏不倚,並且顯然專注於更好的結果。
  • 最後,使用這個關鍵字沒有任何缺點,不會增加時間壓縮性或執行速度。
  • 重要的是要理解,如果沒有 strictfp 關鍵字及其函數,JVM 和 JIT 編譯器可以根據目標機器的 CPU 精度點來操作浮點輸出。
  • 這只是確保 Java 程式語言基礎知識的另一種更好的方法,即“一次編寫,隨處運行”,並且除了源計算機之外,不會在任何地方得到不同或錯誤的結果。

結論 – Java 中的 Strictfp

我們了解了Java中的Strictfp關鍵字是什麼,然後我們探索了它的用途,並且不使用這個關鍵字。它是在 JVM 1.2 中引入的,遵循 IEE 754 的浮點標準。我們用語法演示了 strictfp 關鍵字,然後在範例中實作了它們。它是確保相同結果的修飾符。

以上是Java中的嚴格fp的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!