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