- 相關(guān)推薦
計(jì)算機(jī)二級(jí)考試java基礎(chǔ)知識(shí)
只有苦中尋樂,以苦求樂,才能在知識(shí)的海洋里乘風(fēng)破浪,奮斗拼搏,才能享受到勝利者無限的幸福與歡樂。以下是百分網(wǎng)小編整理的計(jì)算機(jī)二級(jí)考試java基礎(chǔ)知識(shí),歡迎學(xué)習(xí)!
【知識(shí)點(diǎn)一】無用內(nèi)存自動(dòng)回收機(jī)制
1.2.2 無用內(nèi)存自動(dòng)回收機(jī)制
在程序的執(zhí)行過程中,部分內(nèi)存在使用過后就處于廢棄狀態(tài),如果不及時(shí)進(jìn)行無用內(nèi)存的回收,就會(huì)導(dǎo)致內(nèi)存泄漏,進(jìn)而導(dǎo)致系統(tǒng)崩潰。在C++語言中是由程序員進(jìn)行內(nèi)存回收的,程序員需要在編寫程序的時(shí)候把不再使用的對(duì)象內(nèi)存釋放掉;但是這種人為的管理內(nèi)存釋放的方法卻往往由于程序員的疏忽而致使內(nèi)存無法回收,同時(shí)也增加了程序員的工作量。而在java運(yùn)行環(huán)境中,始終存在著一個(gè)系統(tǒng)級(jí)的線程,專門跟蹤內(nèi)存的使用情況,定期檢測(cè)出不再使用的內(nèi)存,并進(jìn)行自動(dòng)回收,避免了內(nèi)存的泄露,也減輕了程序員的工作量。
1.2.3 代碼安全性檢查機(jī)制
字節(jié)碼的執(zhí)行需要經(jīng)過三個(gè)步驟,首先由類裝載器(class loader)負(fù)責(zé)把類文件(.class文件)加載到j(luò)ava虛擬機(jī)中,在此過程需要檢驗(yàn)該類文件是否符合類文件規(guī)范;其次字節(jié)碼校驗(yàn)器(bytecode verifier)檢查該類文件的代碼中是否存在著某些非法操作,例如applet程序中寫本機(jī)文件系統(tǒng)的操作;如果字節(jié)碼校驗(yàn)器檢驗(yàn)通過,由java解釋器負(fù)責(zé)把該類文件解釋成為機(jī)器碼進(jìn)行執(zhí)行。java虛擬機(jī)采用的是"沙箱"運(yùn)行模式,即把java程序的代碼和數(shù)據(jù)都限制在一定內(nèi)存空間里執(zhí)行,不允許程序訪問該內(nèi)存空間外的內(nèi)存,如果是applet程序,還不允許訪問客戶端機(jī)器的文件系統(tǒng)。
【知識(shí)點(diǎn)二】java虛擬機(jī)
1.2 java的工作原理
1.2.1 java虛擬機(jī)
java虛擬機(jī)是軟件模擬的計(jì)算機(jī),可以在任何處理器上(無論是在計(jì)算機(jī)中還是在其它電子設(shè)備中)安全并且兼容的執(zhí)行保存在.class文件中的字節(jié)碼。java虛擬機(jī)的"機(jī)器碼"保存在.class文件中,有時(shí)也可以稱之為字節(jié)碼文件。java程序的跨平臺(tái)主要是指字節(jié)碼文件可以在任何具有java虛擬機(jī)的計(jì)算機(jī)或者電子設(shè)備上運(yùn)行,java虛擬機(jī)中的java解釋器負(fù)責(zé)將字節(jié)碼文件解釋成為特定的機(jī)器碼進(jìn)行運(yùn)行。java源程序需要通過編譯器編譯成為.class文件(字節(jié)碼文件),java程序的編譯和執(zhí)行過程如動(dòng)畫所示。
但是,java虛擬機(jī)的建立需要針對(duì)不同的軟硬件平臺(tái)做專門的實(shí)現(xiàn),既要考慮處理器的型號(hào),也要考慮操作系統(tǒng)的種類。如下圖所示,目前在SPARC結(jié)構(gòu)、X86結(jié)構(gòu)、MIPS和PPC等嵌入式處理芯片上、在UNIX、Linux、windows和部分實(shí)時(shí)操作系統(tǒng)上都有java虛擬機(jī)的實(shí)現(xiàn)。
【知識(shí)點(diǎn)三】java語言的產(chǎn)生
1.1.2 java語言的產(chǎn)生
俗話說:"有心栽花花不成,無心插柳柳成蔭"。Sun公司絕沒想到本想用于消費(fèi)電子產(chǎn)品開發(fā)的編程語言卻率先在網(wǎng)絡(luò)中得到了廣泛應(yīng)用,但是也可以說是"東方不亮西方亮",正是因?yàn)閖ava語言在設(shè)計(jì)目標(biāo)上的正確性使得java語言"是金字總會(huì)發(fā)光的"。C語言是面向過程的語言,也是使用率非常高的語言;而面向?qū)ο蟮乃枷胍氲骄幊陶Z言之后,C語言就被改造成為面向?qū)ο蟮腃++語言,得到了廣泛的應(yīng)用。但是C++語言必須兼容C語言,因此C++語言是面向過程和面向?qū)ο蠡旌系恼Z言。
java語言產(chǎn)生于C++語言之后,是完全的面向?qū)ο蟮木幊陶Z言,充分吸取了C++語言的優(yōu)點(diǎn),采用了程序員所熟悉的C和C++語言的許多語法,同時(shí)又去掉了C語言中指針、內(nèi)存申請(qǐng)和釋放等影響程序健壯性的部分,可以說java語言是站在C++語言這個(gè)"巨人的肩膀上"前進(jìn)的。
java語言的一個(gè)目標(biāo)是跨平臺(tái),因此采用了解釋執(zhí)行而不是編譯執(zhí)行的運(yùn)行環(huán)境,在執(zhí)行過程中根據(jù)所在的不同的硬件平臺(tái)把程序解釋為當(dāng)前的機(jī)器碼,實(shí)現(xiàn)跨平臺(tái)運(yùn)行。而動(dòng)態(tài)下載程序代碼的機(jī)制完全是為了適應(yīng)網(wǎng)絡(luò)計(jì)算的特點(diǎn),程序可以根據(jù)需要把代碼實(shí)時(shí)的從服務(wù)器中下載過來執(zhí)行,在此之前還沒有任何一種語言能夠支持這一點(diǎn)。
java是印尼的一個(gè)小島,盛產(chǎn)咖啡,而程序員往往喜歡喝咖啡,因此取名為java語言。看來,目前java這杯咖啡已經(jīng)飄香在世界各地。
任何事物的產(chǎn)生既有必然的原因也有偶然的因素,java語言的出現(xiàn)也驗(yàn)證了這一點(diǎn)。1991年,美國(guó)Sun Microsystems公司的某個(gè)研究小組為了能夠在消費(fèi)電子產(chǎn)品上開發(fā)應(yīng)用程序,積極尋找合適的編程語言。消費(fèi)電子產(chǎn)品種類繁多,包括PDA、機(jī)頂盒、手機(jī)等等,即使是同一類消費(fèi)電子產(chǎn)品所采用的處理芯片和操作系統(tǒng)也不相同,也存在著跨平臺(tái)的問題。當(dāng)時(shí)最流行的編程語言是C和C++語言,Sun公司的研究人員就考慮是否可以采用C++語言來編寫消費(fèi)電子產(chǎn)品的應(yīng)用程序,但是研究表明,對(duì)于消費(fèi)電子產(chǎn)品而言C++語言過于復(fù)雜和龐大,并不適用,安全性也并不令人滿意。于是,Bill Joy先生領(lǐng)導(dǎo)的研究小組就著手設(shè)計(jì)和開發(fā)出一種語言,稱之為Oak。該語言采用了許多C語言的語法,提高了安全性,并且是面向?qū)ο蟮恼Z言,但是Oak語言在商業(yè)上并未獲得成功。時(shí)間轉(zhuǎn)到了1995年,互聯(lián)網(wǎng)在世界上蓬勃發(fā)展,Sun公司發(fā)現(xiàn)Oak語言所具有的跨平臺(tái)、面向?qū)ο蟆踩愿叩忍攸c(diǎn)非常符合互聯(lián)網(wǎng)的需要,于是改進(jìn)了該語言的設(shè)計(jì),要達(dá)到如下幾個(gè)目標(biāo):
◇ 創(chuàng)建一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,而不是面向過程的語言;
◇ 提供一個(gè)解釋執(zhí)行的程序運(yùn)行環(huán)境,是程序代碼獨(dú)立于平臺(tái);
◇ 吸收C和C++的優(yōu)點(diǎn),使程序員容易掌握;
◇ 去掉C和C++中影響程序健壯性的部分,使程序更安全,例如指針、內(nèi)存申請(qǐng)和釋放;
◇ 實(shí)現(xiàn)多線程,使得程序能夠同時(shí)執(zhí)行多個(gè)任務(wù);
◇ 提供動(dòng)態(tài)下載程序代碼的機(jī)制;
◇ 提供代碼校驗(yàn)機(jī)制以保證安全性;
最終,Sun公司給該語言取名為java語言,造就了一代成功的編程語言。
【計(jì)算機(jī)二級(jí)考試java基礎(chǔ)知識(shí)】相關(guān)文章:
計(jì)算機(jī)二級(jí)考試JAVA基礎(chǔ)知識(shí):線程10-04
計(jì)算機(jī)二級(jí)考試JAVA基礎(chǔ)知識(shí):創(chuàng)建窗口08-17
計(jì)算機(jī)二級(jí)考試JAVA基礎(chǔ)知識(shí):組件和容器10-06
計(jì)算機(jī)二級(jí)考試JAVA試題08-04
計(jì)算機(jī)二級(jí)JAVA考試構(gòu)建JAVA程序201710-02
2017計(jì)算機(jī)二級(jí)JAVA基礎(chǔ)知識(shí)復(fù)習(xí)08-21
計(jì)算機(jī)二級(jí)考試Java精選訓(xùn)練題07-20