大白話講解 Java程式的執行機制和JVM
據我們所知,Java程式是跨平臺的。那麼Java是如何實現跨平臺的呢?看完下面幾句話就會恍然大悟!
1.為什麼Java語言既是編譯型語言又是解釋型語言呢?
答:執行Java程式,首先需要經過編譯,編譯後會生成一種與平臺無關的位元組碼(也就是*.java檔案),而這種位元組碼檔案是無法執行的。然後,還需要java直譯器來解釋執行。
2.Java是如何實現跨平臺的呢?
答:關鍵就在上一個問題中的Java直譯器,也就是Java虛擬機器,即JVM(Java virtual machine),JVM就是負責解釋執行位元組碼檔案的。由於Java程式編譯後生成的是與平臺無關的位元組碼檔案,所有它可以拿到任何安裝有JVM的平臺上執行,這就實現了所謂的跨平臺。
3.JVM到底是個什麼東西?
答:JVM是一個抽象的計算機,它和我們平常的計算機一樣,具有指令集和儲存區域,負責執行指令,還要管理資料、記憶體和暫存器。
life is beautiful,我是twodog,如果你有問題,歡迎給我留言。
相關推薦
Java程式執行機制和JVM的理解
Java語言編寫的程式需要經過編譯,但是這個編譯步驟不會生成特定的平臺的機器碼,而是生成一種與平臺無關的位元組碼(也就是*.class檔案)。當然,這種位元組碼不是可執行的,所以必須要使用java直譯器來執行。所以,Java程式必須先通過編譯,再通過解釋,才可執行。因此,可以
java程式執行機制和jvm
歷史: sun在1996年釋出了JDK1.0.這個版本包括了兩部分:執行環境(JRE)和開發環境(JDK)。JRE中包含了了核心API,整合API,使用者介面API,釋出技術,java虛擬機器(jvm)五部分;JDK包括了編譯java程式的編譯器(即javac命令)。 jr
大白話講解 Java程式的執行機制和JVM
據我們所知,Java程式是跨平臺的。那麼Java是如何實現跨平臺的呢?看完下面幾句話就會恍然大悟! 1.為什麼Java語言既是編譯型語言又是解釋型語言呢? 答:執行Java程式,首先需要經過編譯,編譯後會生成一種與平臺無關的位元組碼(也就是*.java檔案),而這種位元組
Java程式的執行機制和JVM、JDK及JRE的關聯
和其他編譯型以及解釋性語言相比,Java語言比較特殊,它的編譯過程比較特殊,並不會生成特定平臺的機器碼,而是生成一種與平臺無關的位元組碼(也就是*.class檔案)。 當然,這種位元組碼不是
4.Java語言執行機制基礎——JVM
Java引進Java虛擬機器技術,針對不同的平臺,完全由軟體模擬或由軟體和硬體共同模擬,實現一臺虛擬的計算機。在Java中引入了虛擬機器的概念,即在機器和編譯器之間加入了一層抽象的虛擬的機器。 這臺虛擬的機器在任何平臺上都提供給編譯器一個共同的介面。編譯器只需要面向虛擬機器,生成虛擬機器能夠理解的程式碼,
Java程式執行機制簡介
Java程式執行機制 Java語言是一種特殊的高階語言,它既具有解釋型語言的特徵,也具有編譯型語言的特徵,因為Java程式要經過先編譯,後解釋兩個步驟。 高階語言的執行機制 計算機高階語言按程式的執行方式可以分為編譯型和解釋型兩種。編譯型語言
一位10年Java程式設計師總結進階中的你懂多執行緒和jvm優化嗎?
感謝朋友們的認可和指正。本文是有感而發,因為看過了太多坑人的部落格和書籍,感慨自己走過的彎路,不希望其他初學者被網上互相抄襲的部落格和東拼西湊的書籍浪費時間,想以一個相對巨集觀的視野來描述一個概念,力求通俗易懂,所以沒有深入太多細節,簡化了很多模型,給部分朋友造成了疑惑,說聲抱歉。也沒有配圖,都是抽
Java程式的執行機制和Java虛擬機器
1、java程式的執行Java中原始檔字尾為*.java,編譯(也就是javac命令)使*.java檔案轉換為*.class檔案,然後在計算機上執行(java命令)*.class檔案。這就是java程式的執行過程,那麼JVM(java虛擬機器)是做什麼用的哪?首先我們來看一下
Java程式執行和物件建立過程簡述
Java中一個物件建立分為兩個步驟: 載入類,建立物件。 載入類是將所寫的程式.java檔案編譯生成的.class檔案載入到記憶體中,保證了物件建立的預置環境。類載入完畢後才可以建立該類的物件。 第一步:載入類 1. 當開始執行一個類,虛擬機器首先試圖訪問指定啟
jvm之java類載入機制和類載入器(ClassLoader)的詳解
當程式主動使用某個類時,如果該類還未被載入到記憶體中,則JVM會通過載入、連線、初始化3個步驟來對該類進行初始化。如果沒有意外,JVM將會連續完成3個步驟,所以有時也把這個3個步驟統稱為類載入或類初始化。
十、JAVA多執行緒:JVM類載入器(自動類載入器、雙親委託機制、類載入器名稱空間、執行時包、類的解除安裝等)
Jvm提供了三大內建的類載入器,不同的類載入器負責將不同的類載入到記憶體之中 根載入器(Bootstrap ClassLoader) 是最頂層的載入器,是由C++編寫的,主要負責虛擬機器核心類庫的載入,如整個java.lang包,根載入器是獲取不到引用的,因此
Linux下執行JAVA程式——JRE安裝和配置
JAVA程式的執行必須要安裝JAVA RUNTIME ,也就是執行所需要的環境;我們可以通過安裝JRE 或者JDK 所獲得;如果我們只是應用不是開發,只下載JRE 的包就足夠; JDK包裡面也包含JRE;本文以JRE的安裝為例;JRE中還包括瀏覽器所需要的JAVA外掛;一、下載JRE;http://f
[深入理解JVM 一]---Java程式執行流程
本篇是《深入理解JVM》系列部落格的第一篇,旨在全域性把控,先對整體流程有個認識,然後再分階段詳解.本篇部落格大部分內容來自http://www.cnblogs.com/dqrcsc/p/4671879.htmljava一些地方重新進行了整理,根據自己的理解重新
cmd命令列執行java程式的編譯和執行的方法及可能出現找不到或無法載入主類的錯誤的解決
首先我們經常在用cmd命令列編譯和執行java程式時,我們的java程式呼叫了第三方的jar包,那麼編譯和執行的方法有兩種: 方法1: 編譯:javac -Djava.ext.dirs=E:\
java併發——執行緒池(一)執行機制和如何使用
合理利用執行緒池能夠帶來三個好處。 1、第一:降低資源消耗。通過重複利用已建立的執行緒降低執行緒建立和銷燬造成的消耗。 2、第二:提高響應速度。當任務到達時,任務可以不需要的等到執行緒建立就能立即執行。 3、第三:提高執行緒的可管理性。執
Java程式執行記憶體機制
# Java程式執行記憶體機制 棧記憶體包留呼叫方法、變數的區域,堆記憶體是new物件的區域,方法區為儲存class檔案的區域。 程式剛開始時,先載入類檔案相應的資料到方法區,然後就從`main()`方法開始執行。執行`main()`方法,`main()`方法入棧,執行`phone one = new P
Java程式執行過程及記憶體機制
本講將介紹Java程式碼是如何一步步執行起來的,其中涉及的編譯器,類載入器,位元組碼校驗器,直譯器和JIT編譯器在整個過程中是發揮著怎樣的作用。此外還會介紹Java程式所佔用的記憶體是被如何管理的:堆、棧和方法區都各自負責儲存哪些內容。最後用一小塊程式碼示例來幫助理解Java程式執行時記憶體的變化。 ##
Java多態機制和繼承中重寫重載
htm uil 不同的 運行期 表現 決定 this targe 程序 關於Java中多態機制 http://www.cnblogs.com/chenssy/p/3372798.html 這篇博文講的很透徹 大體意思是 多態定義: 多態就是指程序中定義的引用變量所指向的具體
Java並發機制和底層實現原理
差距 32處理器 們的 trac 結點 exce jdk cep 定性 Java代碼在編譯後會變成Java字節碼,字節碼被類加載器加載到JVM裏,JVM執行字節碼轉化為匯編指令在CPU上執行。Java中的並發機制依賴於JVM的實現和CPU的指令。 Java語言
java垃圾回收機制和調優
user 機制 xmx erp 存儲 這樣的 其他應用 pan time java垃圾回收機制和調優 gc即垃圾收集機制是指jvm用於釋放那些不再使用的對象所占用的內存。java語言並不要求jvm有gc,也沒有規定gc如何