JVM,JRE,JDK
JVM
運行Java字節碼的機器
JRE
Java運行時環境,包括JVM,Java類庫,運行時類庫,國際化支持,安全管理器,啟動器等
比JVM多的內容
Java類庫:提供大量已經實現好了功能,供開發者直接使用
運行時類庫:為JVM提供運行時支持,比如垃圾回收等
國際化支持:實現多語言應用
安全管理器:控制程序的安全權限,保護系統安全
啟動器:啟動JVM并執行Java程序
JDK
Java開發者工具,比JRE多了編譯器,調試器,Jar包等
比JRE多的內容
編譯器(javac):將Java源碼編譯成class字節碼文件
調試器(jdb):用于調試和測試Java程序,設置斷點等
Jar包工具(jar):用于對Java類庫和應用程序進行打包,歸檔
文檔生成工具(javadoc):自動生成Java源代碼對應的API文檔
字節碼
java源代碼經過java編譯器(javac)編譯之后的文件
Java編譯與解釋共存是什么意思
Java代碼運行經歷了兩個階段,
將源代碼編譯成字節碼(中間代碼),然后由JVM將字節碼解釋稱機器碼執行
編譯階段:Java源代碼被編譯(通過javac)成字節碼文件,這些字節碼可以在任何支持Java虛擬機的平臺上運行,使得Java具有跨平臺的特性。(一次編譯到處運行)
解釋階段:Java虛擬機將字節碼解釋稱機器碼執行。
基本類型和包裝類型
用途,占用空間,存儲方式,默認值,比較方式
包裝類型緩存機制
Byte Short Integer Long緩存[-128,127]
Character Boolean緩存true false
浮點數存儲問題
浮點數轉換成二進制存儲到計算機時,可能無法精確的轉換成二進制,導致精度丟失。