知識點(diǎn):
1. AVA體系結(jié)構(gòu)包括四個(gè)獨(dú)立但相關(guān)的部分:java程序設(shè)計(jì)語言、Java class文件格式、Java應(yīng)用編程接口API、Java虛擬機(jī)。
2. Java虛擬機(jī)和Java API的組合被稱為Java運(yùn)行時(shí)系統(tǒng),也被稱作Java平臺,所有的Java程序都在這上面運(yùn)行。
3. Java虛擬機(jī)是一臺抽象的計(jì)算機(jī),其規(guī)范定義了每個(gè)Java虛擬機(jī)必須實(shí)現(xiàn)的特性,但是為每個(gè)特定實(shí)現(xiàn)都留下了很多選擇。
它的主要任務(wù)是裝載class文件并且執(zhí)行其中的代碼,它包含一個(gè)類裝載器,它可以從程序和API中裝載class文件,而字節(jié)碼由執(zhí)行引擎來執(zhí)行。
4. 不同的執(zhí)行引擎,其實(shí)現(xiàn)存在著很大的不同。大致分為以下四種:一次性解釋、即時(shí)編譯器、自適應(yīng)優(yōu)化器、硬件芯片構(gòu)成的。
5. Java方法是由Java語言編寫的,編譯成字節(jié)碼,存儲在class文件中;而本地方法是由其他語言編寫的,編譯成和處理器相關(guān)的機(jī)器代碼,本地方法是Java程序和底層主機(jī)操作系統(tǒng)的連接方法。
6. 有兩種不同的類裝載器:系統(tǒng)裝載器和用戶自定義裝載器,被不同的類裝載器裝載的類存放在不同的命名空間中,他們不能互相訪問。
7. Java class文件為Java程序提供獨(dú)立于底層主機(jī)平臺的二進(jìn)制形式的服務(wù),使得Java程序能夠做到與平臺無關(guān);Java class文件設(shè)計(jì)的緊湊,適合在網(wǎng)絡(luò)上傳送,且Java程序是動(dòng)態(tài)連接和動(dòng)態(tài)擴(kuò)展的,class文件只有在需要的時(shí)候才下載,這個(gè)特點(diǎn)使得Java具有網(wǎng)絡(luò)移動(dòng)性的可能。
8. Java API是運(yùn)行庫的集合,它提供一套訪問主機(jī)系統(tǒng)資源的標(biāo)準(zhǔn)方法;
9. 所有被裝載的class文件(包括從應(yīng)用程序中和從Java API中提取的)和所有已經(jīng)裝載的動(dòng)態(tài)庫(包括本地方法)共同組成了在Java虛擬機(jī)上運(yùn)行的整個(gè)程序。正是由于每個(gè)特定的主機(jī)平臺上都明確地實(shí)現(xiàn)了Java虛擬機(jī)和Java API,因此Java程序本身就能夠成為具有平臺無關(guān)性的程序。
10. Java程序設(shè)計(jì)語言:Java是為網(wǎng)絡(luò)而設(shè)計(jì)的,但Java得應(yīng)用并不局限于網(wǎng)絡(luò)。
Java體系結(jié)構(gòu)