JDK和JRE的區別是什么
JRE: Java Runtime Environment
JDK:Java Development Kit
JRE顧名思義是java運行時環境,包含了java虛擬機,java基礎類庫。是使用java語言編寫的程序運行所需要的軟件環境,是提供給想運行java程序的用戶使用的。
JDK顧名思義是java開發工具包,是程序員使用java語言編寫java程序所需的開發工具包,是提供給程序員使用的。JDK包含了JRE,同時還包含了編譯java源碼的編譯器javac,還包含了很多java程序調試和分析的工具:jconsole,jvisualvm等工具軟件,還包含了java程序編寫所需的文檔和demo例子程序。
再說說java的跨平台吧:
java源程序先經過javac編譯器編譯成二進制的.class字節碼文件(java的跨平台指的就是.class字節碼文件的跨平台,.class字節碼文件是與平台無關的),.class文件再運行在jvm上,java解釋器(jvm的一部分)會將其解釋成對應平台的機器碼執行,所以java所謂的跨平台就是在不同平台上安裝了不同的jvm,而在不同平台上生成的.class文件都是一樣的,而.class文件再由對應平台的jvm解釋成對應平台的機器碼執行
一,機器碼,完全依附硬件而存在~並且不同硬件由於內嵌指令集不同,即使相同的0 1代碼
意思也可能是不同的~換句話說,根本不存在跨平台性~比如~不同型號的CPU,你給他個指令10001101,他們可能會解析為不同的結果~
二,我們知道JAVA是跨平台的,為什么呢?因為他有一個jvm,不論那種硬件,只要你裝有jvm,那么他就認識這個JAVA字節碼~~~~至於底層的機器碼,咱不用管,有jvm搞定,他會把字節碼再翻譯成所在機器認識的機器碼~~~