Java类库及其组织结构(Java API)
Java 官方為開(kāi)發(fā)者提供了很多功能強(qiáng)大的類(lèi),這些類(lèi)被分別放在各個(gè)包中,隨JDK一起發(fā)布,稱為Java類(lèi)庫(kù)或Java API。
API(Application Programming Interface, 應(yīng)用程序編程接口)是一個(gè)通用概念。
例如我編寫(xiě)了一個(gè)類(lèi),可以獲取計(jì)算機(jī)的各種硬件信息,它很強(qiáng)大很穩(wěn)定,如果你的項(xiàng)目也需要這樣一個(gè)功能,那么你就無(wú)需再自己編寫(xiě)代碼,將我的類(lèi)拿來(lái)直接用就可以。但是,我的類(lèi)代碼很復(fù)雜,讓你讀完這些代碼不太現(xiàn)實(shí),而且我也不希望你看到我的代碼(你也沒(méi)必要也不希望讀懂這些晦澀的代碼),我要保護(hù)我的版權(quán),怎么辦呢?
我可以先將我的類(lèi)編譯,并附帶一個(gè)文檔,告訴你我的類(lèi)怎么使用,有哪些方法和屬性,你只需要按照文檔的說(shuō)明來(lái)調(diào)用就完全沒(méi)問(wèn)題,既節(jié)省了你閱讀代碼的時(shí)間,也保護(hù)了我的版權(quán)。例如,獲取CPU信息的方法:
getCpuInfo(int cpuType);
這就是一個(gè)API。也就是說(shuō),該文檔中描述的類(lèi)的使用方法,就叫做API。
我也可以開(kāi)發(fā)一個(gè)軟件,用來(lái)清理計(jì)算機(jī)中的垃圾文件,我比較有公益心,希望讓更多的開(kāi)發(fā)人員使用我的軟件,我就會(huì)在發(fā)布軟件的同時(shí)附帶一個(gè)說(shuō)明文檔,告訴你怎樣在自己的程序中調(diào)用,這也叫做API。
Java API也有一個(gè)說(shuō)明文檔,入口地址:http://www.oracle.com/technetwork/java/api
選擇對(duì)應(yīng)版本的Java,點(diǎn)擊鏈接進(jìn)入即可。J2SE 1.7 的API地址為:http://docs.oracle.com/javase/7/docs/api/
這個(gè)文檔是在線的,官方會(huì)隨時(shí)更新。當(dāng)然你也可以下載到本地,請(qǐng)大家自己百度怎么下載。
打開(kāi)J2SE 1.7 的API文檔,如下圖所示:
圖1 ?API 文檔
Java類(lèi)庫(kù)中有很多包:
- 以 java.* 開(kāi)頭的是Java的核心包,所有程序都會(huì)使用這些包中的類(lèi);
- 以 javax.* 開(kāi)頭的是擴(kuò)展包,x 是?extension 的意思,也就是擴(kuò)展。雖然 javax.* 是對(duì) java.* 的優(yōu)化和擴(kuò)展,但是由于 javax.* 使用的越來(lái)越多,很多程序都依賴于 javax.*,所以 javax.* 也是核心的一部分了,也隨JDK一起發(fā)布。
- 以 org.* 開(kāi)頭的是各個(gè)機(jī)構(gòu)或組織發(fā)布的包,因?yàn)檫@些組織很有影響力,它們的代碼質(zhì)量很高,所以也將它們開(kāi)發(fā)的部分常用的類(lèi)隨JDK一起發(fā)布。
在包的命名方面,為了防止重名,有一個(gè)慣例:大家都以自己域名的倒寫(xiě)形式作為開(kāi)頭來(lái)為自己開(kāi)發(fā)的包命名,例如百度發(fā)布的包會(huì)以 com.baidu.* 開(kāi)頭,w3c組織發(fā)布的包會(huì)以 org.w3c.* 開(kāi)頭,微學(xué)苑發(fā)布的包會(huì)以 net.weixueyuan.* 開(kāi)頭……
組織機(jī)構(gòu)的域名后綴一般為 org,公司的域名后綴一般為 com,可以認(rèn)為 org.* 開(kāi)頭的包為非盈利組織機(jī)構(gòu)發(fā)布的包,它們一般是開(kāi)源的,可以免費(fèi)使用在自己的產(chǎn)品中,不用考慮侵權(quán)問(wèn)題,而以 com.* 開(kāi)頭的包往往由盈利性的公司發(fā)布,可能會(huì)有版權(quán)問(wèn)題,使用時(shí)要注意。
java中常用的幾個(gè)包介紹:
| java.lang | 該包提供了Java編程的基礎(chǔ)類(lèi),例如 Object、Math、String、StringBuffer、System、Thread等,不使用該包就很難編寫(xiě)Java代碼了。 |
| java.util | 該包提供了包含集合框架、遺留的集合類(lèi)、事件模型、日期和時(shí)間實(shí)施、國(guó)際化和各種實(shí)用工具類(lèi)(字符串標(biāo)記生成器、隨機(jī)數(shù)生成器和位數(shù)組)。 |
| java.io | 該包通過(guò)文件系統(tǒng)、數(shù)據(jù)流和序列化提供系統(tǒng)的輸入與輸出。 |
| java.net | 該包提供實(shí)現(xiàn)網(wǎng)絡(luò)應(yīng)用與開(kāi)發(fā)的類(lèi)。 |
| java.sql | 該包提供了使用Java語(yǔ)言訪問(wèn)并處理存儲(chǔ)在數(shù)據(jù)源(通常是一個(gè)關(guān)系型數(shù)據(jù)庫(kù))中的數(shù)據(jù)API。 |
| java.awt | 這兩個(gè)包提供了GUI設(shè)計(jì)與開(kāi)發(fā)的類(lèi)。java.awt包提供了創(chuàng)建界面和繪制圖形圖像的所有類(lèi),而javax.swing包提供了一組“輕量級(jí)”的組件,盡量讓這些組件在所有平臺(tái)上的工作方式相同。 |
| javax.swing | |
| java.text | 提供了與自然語(yǔ)言無(wú)關(guān)的方式來(lái)處理文本、日期、數(shù)字和消息的類(lèi)和接口。 |
更多的包和說(shuō)明請(qǐng)參考API文檔。
大數(shù)據(jù)零基礎(chǔ)快速入門(mén)教程
Java基礎(chǔ)教程
Java語(yǔ)法基礎(chǔ)
1.?Java數(shù)據(jù)類(lèi)型以及變量的定義
2.?Java數(shù)據(jù)類(lèi)型轉(zhuǎn)換
3.?Java運(yùn)算符
4.?Java流程控制
5.?Java數(shù)組的定義和使用
6.?Java StringBuffer與StringBuider
7.?強(qiáng)調(diào)一下編程風(fēng)格
總結(jié)
以上是生活随笔為你收集整理的Java类库及其组织结构(Java API)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java 去掉 t_java中的“\t”
- 下一篇: Java数据类型转换(自动转换和强制转换