成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JDK、SDK、JRE、JVM概念詳解

開發 后端
JDK、SDK、JRE、JVM概念的理解是什么呢?我們經常在進行初級學習的時候JDK、SDK、JRE、JVM概念老是混淆,那么本文講給你點啟示。

JDK、JRE、JVM的實現 

JDK、SDK、JRE、JVM概念的認識我們可以通過HelloWorld來理解這幾個縮寫詞的具體含義:

  1. public class HelloWorld {  
  2.   public static void main(String[] args) {   
  3.    System.out.println("helloworld");   
  4.   }  

編譯之后, 我們得到了HelloWorld.class(圖中的"Your program's class files")

在HelloWorld里面, 我們調用了 JAVA API中的 java.lang.System這個類的靜態成員對象 out, out 的靜態方法: public static void println(String string);

然后我們讓虛擬機器來執行這個HelloWorld。

1. 虛擬機會在classpath中找到HelloWorld.class。

2. 虛擬機中的解釋器(interpret)會把HelloWorld.class解釋成字節碼。

3. 把解釋后的字節碼交由execution engin執行。

4. execution engin會調用native method(即平臺相關的字節碼)來在host system的stdout(顯示器)的指定部分打印出指定的字符串。

5. 這樣, 我們就看到"helloworld"字樣了。

有了這個流程后, 我們就好理解上面幾個術語了:

◆JDK: Java develop kit (Java 開發包)

◆SDK: software develop kit, 以前JDK 叫做Java software develop kit, 后來出了1.2版本后, 就改名叫JDK了, 省時省力, 節約成本。

◆JRE. Java runtime environment 我們的helloworld必須在JRE(Java運行環境,Java運行環境又叫Java平臺)里面, 才能跑起來。 所以, 顯然地, JRE其實就是JDK + JVM

◆JVM Java virtual machine. 簡單地講, 就是把class文件變成字節碼, 然后送到excution engin中執行。 而為什么叫虛擬機, 而不叫真實機呢? 因為JVM本身是又不能運算, 又不能讓顯示器顯示"helloworld"的, 它只能再調用host system的API, 比如在w32里面就會調c++的API, 來讓CPU幫他做做算術運算, 來調用c++里面的API來控制顯示器顯示顯示字符串。 而這些API不是JDK里面有的,我們平時又看不見的,所以我們就叫它native api了

◆解釋平臺無關。 有人會說, 在linux的里面調用native api與w32里面調用的api肯定不一樣吧? 那為什么說Java是平臺無關的呢?
其實是這樣的, 君不見java.sun.com里面又有jdk-for-w32又有jdk-for-linux下載嗎? 剛才不是說了嗎? native api, native api, 就是我們平時看不見的api嗎! 調用native這些煩瑣的活兒都讓jdk去做了。 所以我們調用的時候只用知道jdk(Java api) 里面的java.io.*能提供磁盤訪問功能, java.awt.* 能畫個框框畫個圓圓就行了嗎。 至于JDK又是怎么調用的, 在LINXU上更圓呢? 還是在W32上更圓,這個就是JDK個人的事情了。(理論上講是一樣圓的, 當然這又和顯示器是否純平相關了)

同時, 這里就引申出了另一個話題。 既如何編寫平臺無關的Java程序。 其中關鍵的一條, 就是調用且只調用jdk中的API, 而不要私自調用native api。 原因很簡單啊, JDK-for-linux和JDK-for-w32表面都是一樣的, 所以我在w32里面調用JDK寫的Java程序,在linux里面也會一樣的寫法啊, 所以就可以移植來移植去都沒問題。但是如果我在w32里面調用了 一個圖形顯示的native api, 當我移植到linux去的時候, 誰又能保證里面也有相同名稱, 相同參數,相同返回值, 相同功能的native api供我調用呢!

以上就是JDK、SDK、JRE、JVM概念詳解的介紹,其中的含義還需要慢慢琢磨... ...
 

【編輯推薦】

  1. JDK1.4在Windows下的環境配置
  2. JDK1.6在LINUX下的安裝配置
  3. JDK1.5中新的語言特征淺析
  4. 在JDK7 b50中將實現正則表達式命名捕獲組
  5. JDK日志框架介紹及其主要功能淺析
責任編輯:仲衡 來源: 百度空間
相關推薦

2010-09-27 14:50:22

JDKJREJVM

2009-06-25 14:46:50

JDKJREJVM

2010-09-25 14:58:12

JVMJDKJRE

2022-12-30 16:06:23

JDKJREJVM

2009-07-08 09:47:47

安裝JDKJREJVM

2023-09-27 08:46:44

Java 技術編程語言

2009-07-09 13:44:12

JDK JRE

2010-09-26 14:32:34

JDKJREJVM

2022-06-27 08:24:34

JDKJavaJRE

2009-07-08 18:07:58

jvm jre

2010-09-27 11:32:41

JVMJREJDK

2022-02-16 22:50:28

JVMJDKJRE

2010-09-26 14:13:31

JDKJREJVM

2022-02-15 20:08:41

JDKJavaWindows

2009-07-08 17:59:51

JDK JRE

2010-09-17 17:18:35

EclipseJVM

2010-09-29 10:41:18

J2MEJVM

2019-07-24 10:11:51

jdkjreJava

2009-07-07 10:54:01

JDK

2009-07-09 16:33:06

eclipse jvm
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲福利| 午夜成人在线视频 | 亚洲精品久久久久中文字幕欢迎你 | 国产高清一区二区三区 | 亚洲精久 | 精品一区二区三区四区 | 一区二区免费 | 婷婷综合网| 香蕉视频一区二区 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 国产精品美女在线观看 | 亚洲成人久久久 | 老熟女毛片 | www.国产精 | 国产精品99久久久久久久vr | 免费观看一级毛片 | 亚洲二区在线 | 羞羞视频网站免费观看 | 嫩草视频在线免费观看 | 亚洲福利免费 | 综合久久国产 | 色婷婷亚洲 | 亚洲一区二区三区在线视频 | 亚洲成人自拍网 | 国产免费一区二区三区网站免费 | av网站在线看 | 国产精品女人久久久 | 综合精品在线 | 一级黄色毛片免费 | 国产成人99久久亚洲综合精品 | 国产女人叫床高潮大片免费 | 中文字幕日韩一区 | 99精品99| 亚洲一区日韩 | 91www在线观看 | 日韩在线观看中文字幕 | h片在线观看网站 | 天天av天天好逼 | 欧美日本韩国一区二区 | 日本免费视频在线观看 | 亚洲人成人一区二区在线观看 |