Java 生態系統是圍繞和支援 Java 程式語言的廣泛的工具、技術、程式庫和框架。它包含開發、部署和管理 Java 應用程式所需的一切。圍繞JDK、JRE、JVM
JVM 就像一個翻譯器,讓您的電腦執行 Java 程式和編譯成 Java 位元組碼的其他語言。它將程式碼翻譯成您的電腦硬體可以理解和執行的程式碼。
載入中
將 .class 檔案載入到記憶體中。定位、載入和連結類別檔案(Java 字節碼)以供執行。
連結
初始化
初始化是 JVM 準備使用類別或介面的最後一步。此步驟發生在類別載入(到記憶體中)並連結之後。
方法區
方法區 存放方法、變數、執行時間常數池、方法代碼等類別級資料。
定義Person類別時,方法區儲存Person類別的結構,包括方法(setName)和欄位(name),以及執行時間常數池,其中包含方法名稱和常數值等參考。 # 🎜🎜#
堆
堆是分配運行時記憶體物件的地方。堆在所有執行緒之間共享,是垃圾收集過程發生的地方。
雷雷
堆疊區
堆疊區域儲存幀,其中包含局部變數、操作數堆疊以及對正在執行的類別的運行時常數池的參考。每個線程都有自己的堆疊。
雷雷
節目計數器(PC)註冊
PC包含目前正在執行的JVM指令的位址。每個線程都有自己的PC暫存器。
原生方法堆疊
與Java堆疊類似,但用於本機方法。
翻譯
解譯器讀取Java字節碼並逐行執行,將每個字節碼指令轉換為CPU可以執行的機器級指令序列。
即時(JIT)編譯器
在運作時將字節碼轉換為本機機器碼以提高效能。
垃圾收集器
垃圾收集器負責自動管理 JVM 中的記憶體。它識別並釋放不再使用的內存,將其釋放以用於新物件。
Ausführung & Aufgaben
Die JRE erleichtert die Ausführung von Java-Anwendungen durch die Bereitstellung der JVM und der erforderlichen Bibliotheken und Ressourcen. Die JRE stellt sicher, dass die JVM über &alles, was benötigt wird, um diese Aufgaben auf jeder Plattform auszuführen. Stellen Sie sich die JRE als das komplette Paket vor, das die JVM umfasst &führt&die&schweren&Hebearbeiten,&und&andere&Komponenten&die&die&Ausführung&von&Java&Anwendungen unterstützen.
Klassen- und Bibliotheken
JRE umfasst einen Satz Standard-Java-Klassenbibliotheken, die wiederverwendbaren Code für die Ausführung allgemeiner Aufgaben wie Datenstrukturen und E/A bereitstellen. &Netzwerk,&Parallelität,&und&mehr.
Java&Native&Interface&(JNI)
JNI ermöglicht es Java-Anwendungen, mit nativem Code zu interagieren, der in Sprachen wie C oder C++ geschrieben ist. Diese Funktion ist unerlässlich für die Integration plattformspezifischer Anwendungen. &Funktionen&oder&Verwendung vorhandener nativer Bibliotheken.
Sicherheit&Manager&
Der „Security“-Manager setzt „Sicherheitsrichtlinien“ für „Java-Anwendungen“ durch und schränkt Aktionen wie „Dateizugriff“, „Netzwerkverbindungen“ und „potenziell“ ein. &unsicherer&Code.
JDK ist ein Tool, mit dem Entwickler Java-Anwendungen schreiben, kompilieren, debuggen und ausführen können. Es ist eine Obermenge von JRE #&und&enthält&zusätzliche&Tools&für die Java-Entwicklung.
javac&(Java&Compiler)
javac wird zum Konvertieren von Java-Quellcode (.java-Dateien) in Bytecode (.class-Dateien) verwendet. Dieser Bytecode wird dann ausgeführt. #&by&der&Java&Virtual&Machine&(JVM).
Java&(Java&Application&Launcher)
Der Java-Befehl startet eine Java-Anwendung. Er lädt die erforderlichen Klassendateien, interpretiert den Bytecode und startet die Anwendung.
jdb&(Java&Debugger)
jdb ist der Befehlszeilen-Debugger für Java-Programme und ermöglicht es Ihnen, Java-Anwendungen zur Laufzeit zu prüfen und zu debuggen.
jar&(Java&Archive&Tool)
jar&tool&pakete&mehrere&Dateien&in&eine&einzelne&Archivdatei,&normalerweise&mit&einer&.jar&Erweiterung.&Diese JAR-Dateien&werden&zur&Verteilung&verwendet &Java&Anwendungen&und&Bibliotheken.
javadoc&(Java&Dokumentation&Generator)
javadoc&erzeugt&HTML&Dokumentation&aus&Java-Quellcode,&verwendet&die&speziellen&/**&*/&Kommentare&bekannte&als&doc&Kommentare.
Feature/Aspect | JVM | JRE | JDK |
---|---|---|---|
Purpose | Executes Java bytecode | Provides the environment to run Java applications | Provides tools to develop, compile, debug, and run Java applications |
Includes | JVM itself, which includes class loader, bytecode verifier, and execution engine | JVM + Core libraries (like java.lang, java.util, etc.), and other runtime components | JRE + Development tools (like javac, jdb, jar, etc.), documentation |
Components | - Class Loader - Bytecode Verifier - Execution Engine (Interpreter, JIT) |
- JVM - Core Java libraries - Java Plug-in - Java Web Start |
- JRE - Java Compiler (javac) - JAR Tool (jar) - Debugger (jdb) - Documentation Generator (javadoc) - Other development tools |
Main Functionality | Executes Java bytecode, enabling platform independence | Provides the minimum requirements to run Java applications | Allows developers to write, compile, and debug Java code |
Who Uses It? | End-users running Java applications | End-users running Java applications | Java developers writing and compiling Java applications |
Installation Size | Smallest | Larger than JVM but smaller than JDK | Largest (includes JRE and development tools) |
Developer Tools | No | No | Yes (includes compiler, debugger, profiler, etc.) |
Required to Run Java Programs | Yes | Yes | No (but needed to create Java programs) |
Platform Independence | Provides platform independence by abstracting the underlying hardware | Yes, because it includes the JVM | Yes, it includes everything from JRE |
Examples of Usage | - Running any Java application (e.g., desktop applications, servers) | - Running Java applications in production or end-user environments | - Writing and compiling Java code - Packaging applications - Debugging |
Availability | Part of JRE and JDK | Standalone or part of JDK | Standalone package |
JDK (Java Development Kit) │ ├── JRE (Java Runtime Environment) │ │ │ ├── JVM (Java Virtual Machine) │ │ ├── Class Loader │ │ ├── Bytecode Verifier │ │ ├── Execution Engine │ │ │ ├── Interpreter │ │ │ ├── Just-In-Time (JIT) Compiler │ │ │ └── Garbage Collector │ │ └── Runtime Libraries (core libraries like java.lang, java.util, etc.) │ │ │ └── Java APIs (Core libraries and additional libraries) │ ├── Development Tools (like javac, jdb, jar, javadoc, etc.) └── Documentation (API docs, guides)
以上是Java 生態系概述的詳細內容。更多資訊請關注PHP中文網其他相關文章!