站長留言

  • ✅ 本站維護及更新歷史紀錄,詳情請參考公告
  • ✅ 有任何意見、想法,歡迎留言給Spicy知道喔
  • ✅ 固定於每周一至周五更新Blogger文章,周末不定期
程式Java

【Java】同樣的程式碼,為何在不同的作業系統 (JVM) 可以獲得相同的結果

tags: Java

Common

  • Java Virtual Machine (JVM) is a Process virtual machine.
    • stack machines:記憶體以堆疊(Stack)儲存
  • JVM 將程式碼翻譯成該作業系統或環境的機器能看得懂得語言
    • Start JVM.
    • Start main thread. Load .class into memory using Classloader.
    • Verify bytecode is valid and not violate Java’s security restrictions.
    • Translate bytecode into machine instructions and execute them.
    • Unload classes. Terminate main thread.
    • Shutdown JVM.

使用JVM的理由

  1. 安全性
    • Java Security
    • 利用VM隔離程式碼和作業系統,避免程式碼直接影響系統
  2. Platform independent

JSR

  • Java Specification Requests
  • 不同大廠會依據JSR標準文件實作JVM
  • Java語言的變動由 Java Community Process(JCP)管理,JCP使用Java規範請求(Java Specification Requests,JSRs)來建議和定義對Java平台內容的新增和修改。
  • Java語言由Java語言規範(Java Language Specification,JLS)定義,對JLS的更改則根據JSR 901管理
  • 若JSR成為最終文件後,必須根據JSR實作出免費且開放原始碼的參考實現,稱為RI( Reference Implementation),並提供TCK(Technology Compatibility Kit)作為技術相容測試工具箱,方便其他想根據JSR實現產品的廠商或組織參考與測試相容性

JRE

  • Java Runtime Environment
  • 包含 JVM & JAVA SE API
    • SE:Standard Edition
  • bin:JVM, lib:JVM需要的class

JDK

  • Java Development Kit
  • 包含JRE,及javac、javadoc等工具程式
  • javac:編譯成.class
  • 撰寫Java程式才需要JDK

延伸閱讀

Reference 參考資料

沒有留言:

張貼留言

本網站建議使用電腦或平板瀏覽