Java背後的祕密之深入Java虛擬機初探01

我的目標是要成爲一名企業級架構師,想成爲一名合格的架構師,要學習的東西還是非常多的。Now最近就在學習關於Java虛擬機方面的知識。如果說Java的各種主流框架是招式的話,那麼深入瞭解Java虛擬機就是所謂的內在修爲,即內功。武俠小說中內力是非常有用的。首先以兩個問題開始吧,大家也可以思考一下:
1.爲什麼安裝JDK後會出現兩套JRE呢?(什麼?你不知道,你out了)
2.系統中有兩個jre,由誰來決定到底使用哪一套jre?



這兩個問題很多初學者都不是很清楚,包括一些做了幾年有點開發經驗的人。下面我來解釋一下:
1.爲什麼安裝JDK後會出現兩套JRE呢?(下圖是我安裝好jdk6.0後的目錄結構)

-Java
        -jdk1.6.0_23
                bin
                +demo
                +include
                +jre
                +lib
                +sample
         +jre6

看見沒有,有兩個紅色的jre,第二個jre提供運行Java程序的一個環境,第一個jre支持Java開發工具運行的環境,如javac、java命令,這些都是用Java語言編寫的。如果只有第二個jre那就只能支持Java程序的運行而不能支持開發,所以第二個jre的bin目錄下是沒有javac.exe命令的。簡單點說,想要進行程序開發,必須要有兩個jre。

2.系統中有兩個jre,由誰來決定到底使用哪一套jre?
這個艱鉅的任務落在了java.exe身上,當輸入java.exe命令執行一個java程序時,它會按照下面的方式來
尋找合適的jre。(什麼,我怎麼會知道的?哈哈,我也是聽人講的。《Java深度歷險》這本書裏面有說,推薦一下。

1、首先查找自己的目錄是否有jre(windows中jvm.dll就是Java虛擬機)
2、查看父目錄下是否有jre
3、查詢系統配置(查看註冊表項)

因此可以看到,通過改變程序使用的jre,就能夠控制程序的能力和行爲。

參考書籍《Java深度歷險》、IBM\SUN虛擬機架構白皮書。



轉載來源www.boobooke.com/bbs->J2EE專區->藍山作品—Java背後的祕密(彙總) 

發佈了112 篇原創文章 · 獲贊 345 · 訪問量 75萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章