Java程序是如何运行的「建议收藏」(java注释@)
當我們寫完一個Java源程序的時候,他是怎么被計算機運行的呢?本篇文章就來介紹下Java程序是如何運行的。
一、java技術體系
傳統意義上來講Java技術體系包含下邊幾個部分:
Java程序設計語言
各種硬件平臺上的虛擬機
class文件格式
Java API類庫
來自商業機構和開源社區的第三方Java類庫
jdk:Java語言開發工具包。包括Java程序設計語言,Java虛擬機,Java API類庫三個部分。
jre:Java程序運行時環境。Java SE API類庫中的子集合Java虛擬機。
jvm:執行Java程序的核心組件,是jre中的一部分
Java技術體系包含的內容如圖:
當你不需要編寫Java源程序的時候,你的電腦上是不需要安裝jdk的,只需要安裝jre即可。當我們需要編寫Java源代碼的時候,那么就需要安裝jdk了。jdk中帶有jre,但也可以單獨安裝jre。
二、Java是一個什么類型的語言?
編程語言分為編譯型和解釋型。那么什么是編譯型和解釋型呢?先來引用大牛的一個舉例,我感覺說的特別好。
舉個例子:你現在JVM技術特別牛逼,受邀請去哈佛大學做一次主題演講,自然,這要求你有很好的英語水平,如果你很不幸,和我一樣,英語水平渣的一B,但是又不想放棄這次機會,你又如下兩個選擇:
第一種方式: 帶一個優秀的翻譯伙伴,你演講的時候說一句話,翻譯伙伴幫你翻譯成英文。好處:你可以暢所欲言;缺點:會拖延你的演講時間。因為你說的每一句話,都必須等待翻譯完才能繼續。
第二種方式:先將演講稿寫好,翻譯成英文。如 Hello,Good Morning(哈嘍,骨的貓寧)。好處:不會拖延你的演講時間,你演講也比較流暢、快速的進行;缺點:不能自由發揮,如你的演講本來是上午,改為下午了,你就不在使用Hello,Good Morning(哈嘍,骨的貓寧)了。
好了,通過上邊的例子,我們來總結下什么是編譯型語言和解釋型語言。
編譯型語言:對應的是上邊例子的第二種情況。是需要將程序源碼直接放在特定的操作系統上,編譯成可被特定操作系統所識別的字節碼,然后在操作系統上運行的語言。像C,C++都是編譯型語言。他們運行時,都是需要放在不同的操作系統上編譯,然后再運行。優點是執行速度快缺點是可擴展性不強
解釋型語言:對應上邊第一種情況。不需要提前編譯好,只需要在運行的時候,由解釋器來逐行解釋運行即可。優點是可擴展性強缺點是運行速度慢。
那么來看Java到底是哪種類型的語言呢?我們都知道Java源程序需要先由javac編譯成可被Java虛擬機所識別的字節碼,然后再由Java虛擬機運行。所以Java是編譯型和解釋型語言的結合。
三、運行過程
運行過程:
①Java 源文件—->編譯器—->字節碼文件
② 字節碼文件—->JVM—->機器碼
Java源程序先通過javac編譯器編譯成可被Java虛擬機所識別的字節碼文件。之后Java虛擬機就會將class文件加載到內存,然后運行。其中Java虛擬機就充當了class文件與操作系統之間的解釋器。所以如果需要在不同的平臺上運行文件,那么只需要在操作系統上安裝相應版本的Java虛擬機即可。這也就是為什么Java程序是一次編譯到處運行的原理。
總結
以上是生活随笔為你收集整理的Java程序是如何运行的「建议收藏」(java注释@)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java类和对象初始化
- 下一篇: Java虚拟机和Dalvik(andro