首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 中鮮為人知的四大語言特性:strictfp、局部類、八進制、short

     編輯:Java 相關知識

前言

JavaLobby 曾評選「Java 十大最無用特性」,讀者 Anthony Goubard 另列舉四項幾乎無人使用的語言級特性。本文整理這四項特性,並探討其適用場景與潛在坑點。

1. strictfp:嚴格浮點運算

strictfp 關鍵字強制浮點運算遵循 IEEE 754 標準,確保跨平台結果一致。但現代 JVM 預設已符合標準,僅在極少數嚴格要求位元級一致的科學計算場景才需顯式聲明。若你從未聽過它,恭喜你屬於 95% 的 Java 開發者。

2. 局部類

Java 有四種內部類:靜態內部類、成員內部類、匿名內部類、局部類。前三者常見,局部類定義在方法內部:

public class TopLevelClass {
    public void someMethod() {
        class LocalClass { /* fields & methods */ }
        LocalClass instance = new LocalClass();
    }
}

作用域僅限方法內,實際專案極少用到,通常以匿名內部類或 Lambda 替代。

3. 八進制字面量

以 0 開頭表示八進制,例如 060 等於十進制 48。易混淆:

int a = 60;
int b = 060; // 實為 48
System.out.println(a + b); // 輸出 108

現代開發中二進制用十六進制(0x)更直觀,八進制幾乎只出現在舊版 Unix 權限碼或自動生成代碼中。

4. short 資料類型

16 位有號整數,範圍 -32,768 ~ 32,767。實務上開發者幾乎總用 int(32 位),即便數值遠小於 short 上限。JVM 運算棧將 short 自動擴展為 int,使用 short 反而可能增加轉換開銷。僅在大型陣列需節省記憶體、或與原生代碼交互時才考慮。

總結

這四項特性並非「無用」,而是「專用」。了解它們有助於閱讀舊代碼、避免隱性 Bug(如八進制陷阱),並在極少數場景發揮作用。日常開發中,專注於核心特性與現代語法(Lambda、Stream、Record 等)收益更高。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved