當前位置:
首頁 > 知識 > Java是怎樣運行的,你敢說真的知道?

Java是怎樣運行的,你敢說真的知道?

大多數初學者,甚至許多已經工作的碼農們,由於從一開始學習Java就在方便的eclipse等開發工具上進行,當熟練了Java的基本技術後,自己也習慣了開發工具的一切,有些人甚至會認為eclipse就是Java了。

他們習慣了工具給他們安排好一切,語法提示,錯誤提示,代碼片段生成,一鍵運行。這類開發工具,確實厲害,是碼農們不能離開的利器,在實際的開發工作中,這是必須需要的東西。

然而,對於一個沒有理解Java基本運行機制的碼農來說,一開始就使用這樣的工具,不利於深入理解Java,因為這些工具真的太方便了,替你做了太多的事,讓你沒有機會去了解那些基本的東西。或許你會認為不可思議,幾十年前的程序員們,幾乎使用記事本編寫程序。雖然難以置信,但是你要相信這個事實。

今天,我們不妨使用記事本來試一試我們的helloworld,透過它,我們去了解,Java到底是怎樣跑起來的,我們在開發工具中一鍵運行的背後,到底隱藏了哪些動作。

首先,確認你的機器上有Java的開發環境,注意,是開發環境而不是運行環境,也就是我們所說的JDK,而不是JRE,說道這裡,相信也有些初學者會分不清這兩者有什麼不同吧。簡單說來,JDK是Java開發工具包的簡稱,包含了Java程序開發必須的工具,包括開發和運行的相關東西,JRE只是運行Java程序的一個必須環境,開發Java程序後我們需要將.java變成.class,或者將多個.class放到一起變成自己的jar包等,實現這些功能所需要的組件就在JDK中,JRE負責解釋執行我們編譯後的.class。

有了JDK我們就可以用記事本編寫Java程序了。首先我在F盤的blog包中寫一個HelloWorld的類,然後,我們需要編譯。使用jdk中的javac工具我們就可以編譯源碼。

在命令行窗口中輸入

javac F:loghelloworldHelloWorld.java 回車後,我們在helloworld目錄中就能看到HelloWorld.class了,然後就是運行這個HelloWorld了。運行時,我們需要告訴java去哪裡找.class,Java程序中包名也是程序的一部分,我們在指定目錄路徑時,包不能作為目錄看待。

兩種運行方式,自己體會一下。

1.先進入class文件所在的最裡層目錄中,不包含包。這裡是F:\blog, F: 回程,cd blog 回車,此時進入了F:log目錄,然後使用java工具來運行,命令行輸入

java helloworld.HelloWorld 回車,我們看到helloworld的話就說明成功了!

2.通過classpath參數指定class文件的路徑,同樣不包含包。

java -classpath F:log helloworld.HelloWorld 回車,效果一致。

我們程序中的main方法是運行的入口點,main方法中的數組參數你是否用到過呢?我們順便來看看怎麼用吧,由於main方法是由Java運行時調用,我們在程序開發中沒用向其傳參的機會,如果需要傳參,我們也可以做到。

方法很簡單,在java命令中在要運行的class後面加上參數即可,以空格分開。如

java helloworld.HelloWorld 參數1 參數2 參數3 參數N

以上的這些隱含的事就是開發工具替你悄悄完成的。知道這些基本的東西,是你深入了解一下技術細節的基礎,例如後續的類載入器,反射技術等。當然,這只是Java運行機制的最簡單描述,實際情況複雜的多。類載入器把一個類裝入虛擬機還需要進行裝載、鏈接、初始化等步驟,需要進行校驗、準備、解析等一系列過程,這些是更深層次的技術細節了。

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 java學習吧 的精彩文章:

java 良好的編程習慣
Java函數調用傳值還是傳引用?從位元組碼角度來看
2017需求 最旺的編程語言
有點基礎的初級java要掌握的知識

TAG:java學習吧 |