核心機制:域名反轉
Java 以網域名稱反轉作為套件前綴,確保全域唯一:
- 我的域名:
BruceEckel.com
- 我的工具庫:
com.bruceeckel.utility.foibles
- 點號對應目錄層級
歷史演進
- Java 1.0/1.1:頂級域(com、edu、org、net)大寫 →
COM.bruceeckel...
- Java 1.2+:發現大寫導致問題,**全面改為小寫** →
com.bruceeckel...(現行標準)
自動命名空間隔離
- 每個檔案自動擁有獨立命名空間(套件)
- 檔案內每個類別自動獲得唯一完整名稱(套件名 + 類名)
- 檔案內類名仍需唯一
- 無需學習額外語法,語言層面原生解決
對比 C/C++
- C:無命名空間,極易衝突
- C++:類嵌套函數 +
namespace 關鍵字,仍有全域變數/函數風險
- Java:徹底消除衝突,套件機制強制隔離