更新時間:2019-08-25 09:00:00 來源:動力節(jié)點 瀏覽3023次
說到Java的學(xué)習(xí),對于大部分的初學(xué)者,或者是想要入門這一課程的人來說,他們并不知道該學(xué)習(xí)些什么。就拿我上大學(xué)期間來說,在剛剛接觸Java這門課程的時候,我完全不知道要學(xué)習(xí)些什么東西。一步一步跟著老師學(xué)下來,希望對想要學(xué)習(xí)Java的朋友們有所幫助.
首先說說Java的學(xué)習(xí)階段。Java這門課程大概分成兩個學(xué)習(xí)階段,初階階段和高級階段。初級階段學(xué)習(xí)的是一些基礎(chǔ)的知識,這一階段學(xué)習(xí)JavaSE。JavaSE是Java標準版,不涉及集成軟件的使用,主要使用筆記本和命令提示符來進行學(xué)習(xí)。高級階段是在初級的基礎(chǔ)上繼續(xù)深化學(xué)習(xí),加入集成開發(fā)環(huán)境的搭建和使用,并且使用一些框架來優(yōu)化代碼,更加切合實際的需求,也就是Java企業(yè)版,即JavaEE。

好了,經(jīng)過上面的介紹,你對于Java編程語言是否有了一些基本的了解?相信有了對Java全局的把握,學(xué)習(xí)起來會相對容易一些。但是,這么一套語言要真正的學(xué)習(xí)下來并且精通,難度還是不小的。
一個Java程序要想呈現(xiàn)出我們想要的樣子要經(jīng)過編譯期和運行期兩個階段。我們知道,Java文件的后綴名為.java,編譯期要做的事情就是要將.java文件編譯,生成以.class為后綴名的字節(jié)碼文件,這一過程所對應(yīng)的命令為javac。而運行期要做的就是加載并運行.class字節(jié)碼文件,變成計算機能夠識別的0和1,其所對應(yīng)的命令為java。問題又來了,計算機有很多種類,而每種類型的計算機的翻譯法則都不一樣,該怎么辦呢?
對于C語言,這一問題的處理方法就是實現(xiàn)同一功能的程序針對每一種計算機都要編寫一次,這樣造成的后果就是人力的大量使用,很大程度的擴大了成本。而Java語言就比較聰明了,它用不同版本的Java虛擬機(JVM)來翻譯,以適應(yīng)不同類型的計算機,而這些版本不同的JVM由SUN公司提供,當(dāng)然,SUN公司被Oracle公司收購之后,自然是由Oracle公司提供了,這樣,實現(xiàn)同一功能的程序只需要編寫一次就好,Java也因此有了一大特性,跨平臺,用我們的話說,那就是一次編程到處使用。
接下來的一個重要知識點就是JVM,JRE和JDK的關(guān)系,這三個東東的概念書上都有,我要說的就是他們之間的關(guān)系,我把他們總結(jié)成兩等一不等??偟膩碚f,他們的關(guān)系是這樣的:JVM<JRE<JDK(一不等)。還有就是兩個等式,一個是JRE=JVM+系統(tǒng)類庫,一個是JDK=JRE+編譯運行等命令工具(二等)。

那么,上面的內(nèi)容說明了兩點。(1)運行Java程序的最小環(huán)境為JRE。(2)開發(fā)Java程序的最小環(huán)境為JDK。這兩點要多加注意了,不管是期末考試還是面試,出題老師都喜歡從這里出個題,看看你知不知道這里面的東西。畢竟,這些內(nèi)容是基礎(chǔ)里的基礎(chǔ),如果這些都不知道,那還怎么稱得上是學(xué)通了,用人單位怎么敢用?
說了這么多,你有沒有疑問呢?聽說了JVM的本事,你就不想知道他是怎樣一種結(jié)構(gòu)嗎?別急,我這就一一道來。
這JVM由棧內(nèi)存,堆內(nèi)存和方法區(qū)組成。它們都是干什么的呢?棧內(nèi)存里放的是局部變量,調(diào)用方法時在方法中申明的一些基本類型變量。堆內(nèi)存里存的是new出來的對象,即為引用類型變量。而方法區(qū)里放置的就是靜態(tài)變量,常量和類的信息了。這就奇怪了,里面放的都是一些變量,對象,類什么的,怎么就有那么大的本領(lǐng)?要知道,這些都是編寫程序的基礎(chǔ)元素,能量大著呢。
相關(guān)閱讀