在前幾篇文章中,北京北大青鳥(niǎo)學(xué)校技術(shù)老師介紹了Java虛擬機(jī)、Java裝載器。其實(shí),在Java核心技術(shù)中,還有一個(gè)技術(shù)是很重要的,就是Java class文件。
北京北大青鳥(niǎo)學(xué)校技術(shù)老師介紹,Java class文件主要在平臺(tái)無(wú)關(guān)性和網(wǎng)絡(luò)移動(dòng)性方面使Java更適合網(wǎng)絡(luò)。它在平臺(tái)無(wú)關(guān)性方面的任務(wù)是為Java程序提供獨(dú)立于底層主機(jī)平臺(tái)的二進(jìn)制形式的服務(wù)。這種途徑途徑打破了C或者C++等語(yǔ)言所遵循的傳統(tǒng),使用這些傳統(tǒng)語(yǔ)言寫的程序通常首先被編譯,然后被連接成單獨(dú)的、專門支持特定硬件平臺(tái)和操作系統(tǒng)的二進(jìn)制文件。通常情況下,一個(gè)平臺(tái)上的二進(jìn)制可執(zhí)行文件不能在其他平臺(tái)上工作。而Java class文件時(shí)可以運(yùn)行在任何支持Java虛擬機(jī)的硬件平臺(tái)和操作系統(tǒng)上的二進(jìn)制文件。
當(dāng)編譯和連接一個(gè)C++程序時(shí),所獲得的可執(zhí)行二進(jìn)制文件只能在指定的硬件平臺(tái)和操作系統(tǒng)上運(yùn)行,因?yàn)檫@個(gè)二進(jìn)制文件包含了對(duì)目標(biāo)處理器的機(jī)器語(yǔ)言。而Java編譯器把Java源文件的指令翻譯成字節(jié)碼,這種字節(jié)碼就是Java虛擬機(jī)的"機(jī)器語(yǔ)言"。
說(shuō)到Java class文件的有點(diǎn),北京北大青鳥(niǎo)學(xué)校專家認(rèn)為,class文件設(shè)計(jì)緊湊,因此它們可以快速地在網(wǎng)絡(luò)上傳送。其次,由于Java程序是動(dòng)態(tài)連接和動(dòng)態(tài)擴(kuò)展的,class文件可以在需要的時(shí)候才下載。這個(gè)特點(diǎn)使得Java應(yīng)用程序能夠安排從網(wǎng)絡(luò)上下載class文件的時(shí)間,從而可以最大限度地減少終端用戶的等待時(shí)間。北京北大青鳥(niǎo)學(xué)校技術(shù)老師提供