JVM、JRE與JDK簡介
一、 JVM
JVM(Java Virtual Machine),是架構在Linux、Windows等各種作業系統平臺之上的一種虛擬的機器。
它為所有編譯程式提供一個共同的介面,編譯程式只需要面向虛擬機器,生成虛擬機器能夠理解的程式碼,然後由直譯器來將虛擬機器程式碼轉換為特定系統的機器碼執行。在Java中,這種供虛擬機器理解的程式碼叫做位元組碼(ByteCode)(class檔案的內容),它不面向任何特定的處理器,只面向虛擬機器。每一種平臺的直譯器是不同的,但是實現的虛擬機器是相同的。Java源程式經過編譯器編譯後變成位元組碼,位元組碼由虛擬機器解釋執行,虛擬機器將每一條要執行的位元組碼送給直譯器,直譯器將其翻譯成特定機器上的機器碼,然後在特定的機器上執行。
這也是Java能夠跨平臺的原因。對於計算機而言,只認識一種語言,也就是0、1序列組成的機器指令。當我們用Java或者C++等語言寫好程式時,計算機是看不懂它們的,這就需要一個翻譯員將我們寫好的程式碼翻譯成0、1序列組成的機器指令,這個翻譯員的工作就是編譯(Compiler)。
而其中的問題在於,每個平臺認識的0、1序列並不一樣。某個指令在Windows上是0101,在Linux下可能就是1010,因此必須使用不同的編譯程式為不同平臺編譯出可執行的機器碼,這樣無法做到跨平臺。
Java程式要想執行,也要通過編譯。不過Java編譯時,並不直接編譯為依賴於平臺的0、1序列,而是翻譯為位元組碼(ByteCode)。
圖 1
不同的平臺需要安裝專屬該平臺的JVM。打個比方就是,你講中文(.java),Java編譯程式幫你翻譯為英文(.class),這份英語檔案到各地後,再由當地看得懂的人(JVM)翻譯為當地語言(機器碼)。
所以,JVM就是把.class位碼文件,翻譯成所在平臺看得懂的0、1序列。這樣就能達到跨平臺的目的。需要記住的是:對Java程式而言,只認識一種作業系統,就是JVM,.class位碼文件就是JVM的可執行檔案。Java是執行與JVM上的,而JVM去與底層平臺(如Linux)等進行溝通,但是我們不必考慮這些。
二、JRE與JDK
拿一句最基礎的程式碼為例:
System.out.println(“Hello World”);
Java是個標準,System、out、println都是標準中規範的名稱。實際上必須有人根據標準寫出System.java,編譯為System.class,這樣才能直接使用System類上out物件的println()方法。而寫出System.java的廠商(如Sun、IBM)必須根據相關的JSR標準檔案將標準連結庫開發出來,這樣寫好的Java程式在Sun、IBM等廠商開發的JVM上執行時,引用如System這些標準API,才能執行在不同平臺。
在圖2可以看到JavaSE API包含各種常用的連結庫,像是通用的集合(Collection)、輸入/輸出、聯機資料庫的JDBC、撰寫視窗程式的AWT與Swing等,這些都在各個JSR標準檔案規範之中。
圖 2
JRE(Java Runtime Environment)是Java執行環境,包括JavaSE API與JVM。使用JavaSE API中的連結庫,在安裝有JRE的計算機上就可以直接執行。
前面說過,要在,java中撰寫Java程式語言,使用編譯程式編譯為.class文件,其中編譯程式這樣的工具程式就有JDK提供,全名為JavaDevelopment Kit。
JDK包括了javac、appletviewer、javadoc等工具程式,對於要開發Java程式的人,必須安裝JDK。JDK本身包括了JRE,這樣才能執行Java程式。總的來說,JDK包括了Java程式語言、工具程式與JRE,JRE則包括了部署技術、JavaSE API與JVM。
相關推薦
JVM、JRE與JDK簡介
一、 JVM JVM(Java Virtual Machine),是架構在Linux、Windows等各種作業系統平臺之上的一種虛擬的機器。 它為所有編譯程式提供一個共同的介面,編譯程式只需要面向虛擬機器,生成虛擬機器能夠理解的程式碼,然後由直譯
JVM、JRE與JDK的關係
最開始學 Java 的時候不是很在意這些比較基礎的東西,只是知道怎麼使用。現在學得有些日子了,雖然也不是很清楚底層的具體實現,但是對於整個體系的搭建大致有了一些瞭解。最近由於找到工作了比較鬆懈,而且也在考駕照,所以有些日子沒學習了。今天一時想起,把之前的筆記整理了一下,順便
JAVA學習筆記系列3-JVM、JRE和JDK的區別
JVM(Java Virtual Machine)就是一個虛擬的用於執行bytecode位元組碼的“虛擬計算機”。它和os打交道 JRE(Java Runtime Environment)包含:Java虛擬機器、庫函式、執行java應用程式所必須的檔案。它包含了JVM JDK(Java Developme
理解JVM、JRE和JDK
JVM JVM,全稱為Java Virtual Machine,中文的意思是:Java虛擬機器。 在理解Java虛擬機器這個定義之前,我們先講講為何叫虛擬機器呢?稱為虛擬機器,顧名思義,它應該不是真實存在的。那它是什麼呢?在這裡,我們把它理解為一種規範(就像
針對初學者瞭解JVM、JRE和JDK三者間的區別和聯絡
首先說Java程式語言,它是一門高階程式語言,具體由誰何時建立的,讀者可以到網上查詢相關資料,這裡就不再贅述。那麼,談到Java就不得不談談JVM、JRE和JDK三者間的區別和聯絡。 JVM:英文全稱Java Virtual Machine,字面意思
Java筆記 - JDK、JRE與JVM
inter path mach 指令 ima title 變量 applet 20px (1)JDK與JRE JDK(JAVA Development Kit)不僅包含java運行時環境JRE(JAVA Runtime Environment)的超集,還為開發者還
簡述JVM、JRE、JDK的關系及作用
java程序 虛擬 不能 window jvm 運行 ron 作用 虛擬機 1、JVM:java虛擬機 。 作用:保證java語言跨平臺。 2、JRE:java運行環境 jre=java虛擬機+核心類庫。 作用:java程序的運行環境。 3、JDK :jav
第一記-JVM、JRE、JDK
高階語言分編譯語言和解釋語言。 編譯是編譯器把原始碼編譯成本地機器可識別的機器碼,只需執行一次,程式執行速度快,然而不可移植到其它平臺。 解釋在每次程式執行時都進行一次編譯,可以移植到其它平臺,程式執行速度變慢。 java語言是將原始碼(以.java結尾的檔案)轉換為位元組碼檔案(.class),然後由
Java基礎(一)——JVM、JRE、JDK、Javac等
Life is like a box of chocolates,you never konw what you're going to get. 在大學的時候已經學習過java,但是對java瞭解的越多越發現自己越來越不瞭解java。這有點像自以為擁有了整
JVM與JRE與JDK區別和聯絡
JVM:字面意思是java虛擬機器,它是用來載入並執行.class檔案的軟體JRE:字面意思是java執行時環境,它包含JVM和一些常用的類庫,類庫就是我們在編寫好java程式後所依賴的核心類和支援檔
JVM、JRE、JDK相關概念
www. 語言 java基礎 使用 ica java開發工具 devel j2e 開發者 **轉載** 文章出處 https://www.cnblogs.com/zhangzongxing01/p/5559126.html JDK(Java Development
JVM、Jre、Jdk、sdk關係
JVM: Java虛擬機器(Java Virtual Machine 簡稱JVM)是執行所有Java程式的抽象計算機,是Java語言的執行環境,它是Java 最具吸引力的特性之一。jvm是java針對不同平臺編寫的編碼解析工具,能將java程式碼編譯為位元組碼。這是java跨
java的幾個版本以及jvm、jre、jdk、Java SE、Java EE、Java ME
哈哈還沒有展開它們的子選項呢,讓人眼花繚亂,下面介紹大家使用的比較廣泛的名詞吧: (一)J2SE Java2平臺標準版(Java2 Platform Standard Edition),主要面向個人PC桌面應用程式開發,其中包括: 1、Java執行環境(Java Runtime Environment, JR
JAVA JRE與JDK的區別(簡潔,詳細,精闢)
Oracle has two products that implement Java Platform Standard Edition (Java SE) 8: Java SE Development Kit (JDK) 8 and Java SE Runtime Environment (JR
java JDK、JRE、JVM 的區別與聯系
pan 及其 調試工具 編譯 java開發工具 font jre cpu devel JVM:(Java Virtual Machine)就是java虛擬機。 JRE:(Java Runtime Enviromental)java運行環境,包括了JVM
Java JDK、JRE、JVM的區別與聯系
自己 title category 工具 編寫 image src 通過 基礎 title: Java JDK、JRE、JVM的區別與聯系 date: 2018-03-17 23:07:33 category: 原創 --- JDK: 全名:Java Developmen
JDK、JRE、JVM的區別與聯絡
本文章僅供本人學習參考,如有錯誤和不妥,望指正~~ 轉載連結:https://jingyan.baidu.com/article/425e69e6077283be15fc16ed.html 前幾天面試的時候被問到JDK、JRE、JVM三者的區別,雖然答了出來,但是有些細節還
0、JDK、JRE、JVM區別與聯絡
1.基本概念 JVM : 全稱 Java Virtual Machine,即java虛擬機器,是一個用於執行位元組碼的”虛擬計算機”。由於不同的作業系統有不同的虛擬機器,Java虛擬機器在執行位元組碼時,把位元組碼解釋成具體平臺上的機器指令執行。實現了“一次編譯,隨處執行”。 這也是J
2018/12/9 JDK、JRE、JVM區別與聯絡
Eg: 首先舉個簡單的例子,比如你要用Gephi這款軟體,需要配置java環境,如果你配置JDK——開發java程式用的開發包,還需要進一步配置環境變數,如果你配置好了JRE——執行java程式的環境,就可以直接使用Gephi。 &nbs
【Java SE】————JDK、JRE、JVM簡介
JDK、JRE、JVM簡介: JVM(Java Virtual Machine,Java虛擬機器)的縮寫,JVM是一種用於計算裝置的規範,它是一個虛構出來的計 算機,是通過在實際的計算機上模擬