① jdk和java虛擬機的區別
區別沒想過。。。名字不一樣吧。java開發的通用工具??基本都是ECLIPSE,很多都是基於他的基礎的,也就是自己弄的插件組裝而成的,但實際上還是ECLIPSE
② JAVA虛擬機和JDK是什麼關系.
分類: 電腦/網路 >> 程序設計 >> 其他編程語言
問題描述:
JAVA虛擬機和JDK是什麼關系.
有了JAVA虛擬機是不是就可以在電腦上運行JAVA程序?
解析:
Java虛擬機是一個想像中的機器,在實際的計飢含賀算機上通過軟體模擬來實現。Java虛擬機有自己想像中的硬體,如處理器、堆棧、寄存器等,還具有相應的指令系統。
JDK (Java Development Kit)
JDK 是整個Java的核心,包括了Java運行環境(Java Runtime Envirnment),一堆Java工具和Java基礎的類庫(rt.jar)。不論什爛派么Java應用伺服器實質都是內置了某個版本的JDK。因此掌握 JDK是學好Java的第一步。最主流的JDK是Sun公司發布的JDK,除了Sun之外,還有很多公司和組織都開發了自己的JDK,例如IBM公司開發的JDK,BEA公司的Jrocket,還有GNU組織開發的JDK等等。其中IBM的老檔JDK包含的JVM(Java Virtual Machine)運行效率要比Sun JDK包含的JVM高出許多。而專門運行在x86平台的Jrocket在服務端運行效率也要比Sun JDK好很多。但不管怎麼說,我們還是需要先把Sun JDK掌握好。
③ 已經安裝過jdk,為什麼打開eclipse時,還顯示沒有Java虛擬機
安裝過jdk之後,打不開eclipse,可能的原因如下:
1、沒有配置正確jdk的環境變數。重新檢查一下環境變數是否寫對源帶。檢查你配置的JDK環境變數。
2、你安裝的eclipse是win32位的,jdk也要對應是32位的,否則也是啟動不了。
3、java -version查看java版本的命令JDK版本和eclipse的版本不匹配,導致無法載入。請確認jdk的位數。
4、eclipse的虛擬內存不夠,需要到配置文件裡面擴大虛擬內存大小。
虛擬機是一種抽象化的計算機,通過在實際的計算機上模擬模頌謹擬各種計算機功能來實現的。Java虛擬機有自己完善的硬體架構,如處理器、堆棧、寄存器等,還具有相應的指令系統。Java虛擬機屏蔽了與具體操作系統平台相關的信息,使得Java程序只需生成在Java虛擬機上運行的目標代碼(位元組碼),就可以在多種平台上不加修改地運行。
Java虛擬機(JVM)一種用於計算機設備的規范,可用不同的方式(軟體或硬體)加以實現。編譯雹櫻蘆虛擬機的指令集與編譯微處理器的指令集非常類似。Java虛擬機包括一套位元組碼指令集、一組寄存器、一個棧、一個垃圾回收堆和一個存儲方法域。
Java虛擬機(JVM)是可運行Java代碼的假想計算機。只要根據JVM規格描述將解釋器移植到特定的計算機上,就能保證經過編譯的任何Java代碼能夠在該系統上運行。
④ 是不是安裝好了JDK就不要安裝JAVA虛擬機了/
是的,裝JDK就可以了,因為JDK包含Java虛擬機。
在JDK的安裝目錄下有一個jre目孝早胡錄,裡面有兩個文件夾bin和lib,在這里可以認為bin里的就是jvm,lib中則是jvm工作所需要的類庫,而jvm和 lib合起來就稱為jre。
從這個層面上來看,在執行一個所謂的java程序的時候,真真正正在執行的是一個叫做Java虛擬機的進程,而不是我們寫的一個個的class文件。這個叫做虛擬機的進程處理一些底層的操作,比如內存的分配和釋放等等。我們編寫的class文件只是虛擬機進程執行時需要的「原料」。
這些「原料」在運行時被載入到虛擬機中,被虛擬機解釋執行,以巧攔控制虛擬機實現我們java代碼中所定義的一些相對高層的操作,比如創建一個文件等,可以將class文件中的信息看做對虛擬機的控制信息,也就是一種虛擬指令。
(4)java虛擬機與jdk擴展閱讀
編譯之後的class文件是作為Java虛擬機的原料被輸入到Java虛擬機的內部的。其實在Java虛擬機內部,有一個叫做類載入器的子系統,這個子系統用來在運行時根據需要載入類。注意上面一句話中的「根據需要」四個字。
在Java虛擬機執行過程中,只有他需要一個類的時候,才會調用類載入器來載入這個類,並不會在開始運行時載入所有的類。就像一個人,只有餓的時候才去吃飯,而不是一次把一年的飯都吃到肚子里。
總結:
1、虛擬機並不神秘,在操作系統的角度看來,它只是一個普睜鋒通進程。
2、這個叫做虛擬機的進程比較特殊,它能夠載入我們編寫的class文件。如果把JVM比作一個人,那麼class文件就是我們吃的食物。
3、載入class文件的是一個叫做類載入器的子系統。就好比我們的嘴巴,把食物吃到肚子里。
4、虛擬機中的執行引擎用來執行class文件中的位元組碼指令。就好比我們的腸胃,對吃進去的食物進行消化。
5、虛擬機在執行過程中,要分配內存創建對象。當這些對象過時無用了,必須要自動清理這些無用的對象。清理對象回收內存的任務由垃圾收集器負責。就好比人吃進去的食物,在消化之後,必須把廢物排出體外,騰出空間可以在下次餓的時候吃飯並消化食物。