Java
tags: 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的理由
- 安全性
- Java Security
- 利用VM隔離程式碼和作業系統,避免程式碼直接影響系統
- 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
延伸閱讀
- JSR API產生流程:https://stackoverflow.com/a/53476585/9516932
沒有留言:
張貼留言