標籤:
Java 官方為開發人員提供了很多功能強大的類,這些類被分別放在各個包中,隨JDK一起發布,稱為Java類庫或Java API。
API(Application Programming Interface, API)是一個通用概念。
例如我編寫了一個類,可以擷取電腦的各種硬體資訊,它很強大很穩定,如果你的項目也需要這樣一個功能,那麼你就無需再自己編寫代碼,將我的類拿來直接用就可以。但是,我的類代碼很複雜,讓你讀完這些代碼不太現實,而且我也不希望你看到My Code(你也沒必要也不希望讀懂這些晦澀的代碼),我要保護我的著作權,怎麼辦呢?
我可以先將我的類編譯,並附帶一個文檔,告訴你我的類怎麼使用,有哪些方法和屬性,你只需要按照文檔的說明來調用就完全沒問題,既節省了你閱讀代碼的時間,也保護了我的著作權。例如,擷取CPU資訊的方法:
getCpuInfo(int cpuType);
這就是一個API。也就是說,該文檔中描述的類的使用方法,就叫做API。
我也可以開發一個軟體,用來清理電腦中的垃圾檔案,我比較有公益心,希望讓更多的開發人員使用我的軟體,我就會在發布軟體的同時附帶一個說明文檔,告訴你怎樣在自己的程式中調用,這也叫做API。
選擇對應版本的Java,點選連結進入即可。J2SE 1.7 的API地址為:http://docs.oracle.com/javase/7/docs/api/
這個文檔是線上的,官方會隨時更新。當然你也可以下載到本地,請大家自己百度怎麼下載。
開啟J2SE 1.7 的API文檔,如所示:
圖1 API 文檔
Java類庫中有很多包:
- 以 java.* 開頭的是Java的核心包,所有程式都會使用這些包中的類;
- 以 javax.* 開頭的是擴充包,x 是 extension 的意思,也就是擴充。雖然 javax.* 是對 java.* 的最佳化和擴充,但是由於 javax.* 使用的越來越多,很多程式都依賴於 javax.*,所以 javax.* 也是核心的一部分了,也隨JDK一起發布。
- 以 org.* 開頭的是各個機構或組織發布的包,因為這些組織很有影響力,它們的代碼品質很高,所以也將它們開發的部分常用的類隨JDK一起發布。
在包的命名方面,為了防止重名,有一個慣例:大家都以自己網域名稱的倒寫形式作為開頭來為自己開發的包命名,例如百度發布的包會以 com.baidu.* 開頭,w3c組織發布的包會以 org.w3c.* 開頭,微學苑發布的包會以 net.weixueyuan.* 開頭……
組織機構的網域名稱尾碼一般為 org,公司的網域名稱尾碼一般為 com,可以認為 org.* 開頭的包為非盈利組織機構發布的包,它們一般是開源的,可以免費使用在自己的產品中,不用考慮侵權問題,而以 com.* 開頭的包往往由盈利性的公司發布,可能會有著作權問題,使用時要注意。
java中常用的幾個包介紹:
包名 |
說明 |
java.lang |
該包提供了Java編程的基礎類,例如 Object、Math、String、StringBuffer、System、Thread等,不使用該包就很難編寫Java代碼了。 |
java.util |
該包提供了包含集合架構、遺留的集合類、事件模型、日期和時間實施、國際化和各種工具 + 生產力類(字串標記產生器、隨機數產生器和位元組)。 |
java.io |
該包通過檔案系統、資料流和序列化提供系統的輸入與輸出。 |
java.net |
該包提供實現網路應用與開發的類。 |
java.sql |
該包提供了使用Java語言訪問並處理儲存在資料來源(通常是一個關係型資料庫)中的資料API。 |
java.awt |
這兩個包提供了GUI設計與開發的類。java.awt包提供了建立介面和繪製圖形映像的所有類,而javax.swing包提供了一組“輕量級”的組件,盡量讓這些組件在所有平台上的工作方式相同。 |
javax.swing |
java.text |
提供了與自然語言無關的方式來處理文本、日期、數字和訊息的類和介面。 |
更多的包和說明請參考API文檔。
系列文章:
Java知多少(1)語言概述
Java知多少(2)虛擬機器(JVM)以及跨平台原理
Java知多少(3) 就業方向
Java知多少(4)J2SE、J2EE、J2ME的區別
Java知多少(5) Java開發環境的搭建
Java知多少(6)第一個程式樣本
Java知多少(7)類與對象
Java知多少(8)類庫及其組織圖
Java知多少(8)類庫及其組織圖