Ekosistem Java ialah set luas alatan, teknologi, perpustakaan dan rangka kerja yang mengelilingi dan menyokong bahasa pengaturcaraan Java. Ia merangkumi semua yang diperlukan untuk membangun, menggunakan dan mengurus aplikasi Java. Ia berkisar tentang JDK, JRE, JVM
JVM bertindak seperti penterjemah yang membenarkan komputer anda menjalankan program Java dan bahasa lain yang disusun ke dalam kod bait Java. Ia menterjemah kod kepada sesuatu yang boleh difahami dan dilaksanakan oleh perkakasan komputer anda.
Memuatkan beban
Muatkan fail .class ke dalam memori. Mengesan, memuatkan dan memautkan fail kelas (Kod bait Java) untuk pelaksanaan.
Memautkan
Permulaan
Permulaan ialah langkah terakhir di mana JVM menyediakan kelas atau antara muka untuk digunakan. Langkah ini berlaku selepas kelas telah dimuatkan (ke dalam ingatan) dan dipautkan.
Kaedah Kawasan
Kawasan kaedah Menyimpan data peringkat kelas seperti kaedah dan pembolehubah, kumpulan pemalar masa jalan dan kod untuk kaedah.
public class Person { private String name; public void setName(String name) { this.name = name; } }
Apabila anda mentakrifkan Orang kelas, Kawasan Kaedah menyimpan struktur kelas Orang, termasuk kaedahnya (setName) dan medan (nama), dan kumpulan pemalar masa jalan yang mengandungi rujukan seperti nama kaedah dan nilai tetap.
Timbunan
Heap ialah tempat objek memori masa jalan diperuntukkan. Timbunan itu dikongsi antara semua benang dan merupakan tempat proses pengumpulan sampah berlaku.
Person p = new Person();
Apabila anda mencipta objek Orang baharu, ia diperuntukkan pada Heap.
Kawasan Timbunan
Kawasan tindanan menyimpan bingkai, yang mengandungi pembolehubah tempatan, tindanan operan dan rujukan kepada kumpulan pemalar masa jalan bagi kelas yang dilaksanakan. Setiap benang mempunyai tindanan sendiri.
public void someMethod() { int a = 10; int b = 20; int sum = a + b; }
Setiap kali someMethod dipanggil, bingkai baharu ditolak ke Kawasan Tindanan. Bingkai ini termasuk pembolehubah setempat (a, b dan jumlah), tindanan operan untuk pengiraan perantaraan dan rujukan kepada kelas kaedah dalam Runtime Constant Pool.
Daftar Kaunter Program (PC)
PC mengandungi alamat arahan JVM semasa yang sedang dilaksanakan. Setiap rangkaian mempunyai daftar PC sendiri.
Timbunan Kaedah Asli
Serupa dengan timbunan Java, tetapi digunakan untuk kaedah asli.
Jurubahasa
Jurubahasa membaca kod bait Java dan melaksanakannya baris demi baris, menukar setiap arahan kod bait kepada urutan arahan peringkat mesin yang boleh dilaksanakan oleh CPU.
Penyusun Just-In-Time (JIT)
Menukar bytecode kepada kod mesin asli pada masa jalan untuk meningkatkan prestasi.
Pengumpul Sampah
Pengumpul sampah bertanggungjawab untuk menguruskan memori secara automatik dalam JVM. Ia mengenal pasti dan mendelokasikan memori yang tidak lagi digunakan, membebaskannya untuk objek baharu.
JRE ialah pakej perisian yang menyediakan persekitaran yang diperlukan untuk menjalankan aplikasi Java. Ia direka bentuk untuk melaksanakan kod bait Java pada mesin, menjadikannya bahagian penting dalam prinsip Java "tulis sekali, jalankan di mana-mana" (WORA).
public class Person { private String name; public void setName(String name) { this.name = name; } }
Person p = new Person();
public void someMethod() { int a = 10; int b = 20; int sum = a + b; }
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)
Pelaksanaan<🎝>Tugas
The<🎝>JRE<🎝>memudahkan<🎝><🎝>pelaksanaan<🎝><🎝>Java<🎝>aplikasi<🎝>oleh<🎝>menyediakan<🎝><🎝>JVM<🎝>dan 🎝><🎝>perpustakaan<🎝>dan<🎝>sumber yang diperlukan.<🎝>JRE<🎝>memastikan<🎝>bahawa<🎝>JVM<🎝>mempunyai<🎝🎝>selamanya >ia<🎝>perlu<🎝>untuk<🎝>melaksanakan<🎝>tugas<🎝>ini<🎝>pada<🎝>mana-mana<🎝>platform.<🎝>Fikirkan<🎝><🎝><🎝> JRE<🎝>sebagai<🎝>pakej<🎝>lengkap<🎝>yang<🎝>termasuk<🎝><🎝>JVM,<🎝>yang<🎝>melakukan<🎝>berat <🎝>mengangkat,<🎝>dan<🎝>lain<🎝>komponen<🎝>yang<🎝>menyokong<🎝><🎝>pelaksanaan<🎝><🎝>Java<🎝>aplikasi.
Kelas<🎝>Perpustakaan
JRE<🎝>termasuk<🎝>satu<🎝>set<🎝>dari<🎝>standard<🎝>kelas<🎝>Java<🎝>perpustakaan,<🎝>yang<🎝>menyediakan<🎝>kod<🎝>boleh digunakan semula <🎝>untuk<🎝>melaksanakan<🎝>tugas<🎝>biasa,<🎝>seperti<🎝>data<🎝>struktur,<🎝>I/O,<🎝>rangkaian,<🎝>konkurensi,<🎝> dan<🎝>lagi.
Jawa<🎝>Native<🎝>Antaramuka<🎝>(JNI)
JNI<🎝>membenarkan<🎝>Java<🎝>aplikasi<🎝>untuk<🎝>berinteraksi<🎝>dengan<🎝>kod<🎝>asli<🎝>ditulis<🎝>dalam<🎝>bahasa<🎝> 🎝>C<🎝>atau<🎝>C++.<🎝>Ini<🎝>ciri<🎝>adalah<🎝>penting<🎝>untuk<🎝>menyepadukan<🎝>ciri<🎝>khusus platform <🎝>menggunakan<🎝>perpustakaan<🎝>asli yang sedia ada.
Keselamatan<🎝>Pengurus<🎝>
<🎝>Keselamatan<🎝>Pengurus<🎝>menguatkuasakan<🎝>dasar<🎝>keselamatan<🎝>untuk<🎝>Java<🎝>aplikasi,<🎝>mengehadkan<🎝>tindakan<🎝>seperti<🎝>seperti <🎝>fail<🎝>akses,<🎝>rangkaian<🎝>sambungan,<🎝>dan<🎝><🎝>pelaksanaan<🎝>berpotensi<🎝>kod<🎝>tidak selamat.
JDK<🎝>ialah<🎝>alat<🎝>yang<🎝>membolehkan<🎝>pembangun<🎝>menulis,<🎝>menyusun,<🎝>nyahpepijat,<🎝> dan<🎝>menjalankan<🎝>Java<🎝>aplikasi.<🎝>Ia<🎝>adalah<🎝>satu<🎝>superset<🎝>dari<🎝>JRE<🎝>dan<🎝>termasuk<🎝>tambahan <🎝>alat<🎝>untuk<🎝>Jawa<🎝>pembangunan.
javac<🎝>(Java<🎝>Penyusun)
javac<🎝>adalah<🎝>gunakan<🎝>untuk<🎝>untuk<🎝>menukar<🎝>Java<🎝>sumber<🎝>kod<🎝>(.java<🎝>fail)<🎝>ke dalam<🎝 >bytecode<🎝>(.class<🎝>fail).<🎝>Ini<🎝>bytecode<🎝>sedang<🎝>kemudian<🎝>dilaksanakan<🎝>oleh<🎝>Java<🎝>Virtual <🎝>Mesin<🎝>(JVM).
java<🎝>(Java<🎝>Aplikasi<🎝>Pelancar)
java<🎝>arahan<🎝>melancarkan<🎝>a<🎝>Java<🎝>aplikasi.<🎝>Ia<🎝>memuatkan<🎝><🎝>kelas<🎝>yang diperlukan,<🎝> mentafsir<🎝>kod bait,<🎝>dan<🎝>memulakan<🎝><🎝>aplikasi.
jdb<🎝>(Java<🎝>Penyahpepijat)
jdb<🎝>ialah<🎝>baris arahan<🎝>penyahpepijat<🎝>untuk<🎝>Java<🎝>program.<🎝>Ia<🎝>membolehkan<🎝>anda<🎝>untuk<🎝 >periksa<🎝>dan<🎝>nyahpepijat<🎝>Java<🎝>aplikasi<🎝>pada<🎝>masa jalan.
jar<🎝>(Java<🎝>Arkib<🎝>Alat)
jar<🎝>alat<🎝>pakej<🎝>berbilang<🎝>fail<🎝>ke dalam<🎝>a<🎝>satu<🎝>arkib<🎝>fail,<🎝>biasanya<🎝>dengan<🎝>a <🎝>.jar<🎝>sambungan.<🎝>Ini<🎝>JAR<🎝>fail<🎝>adalah<🎝>digunakan<🎝>untuk<🎝>mengedarkan<🎝>Java<🎝>aplikasi<🎝>dan <🎝>perpustakaan.
javadoc<🎝>(Java<🎝>Dokumentasi<🎝>Penjana)
javadoc<🎝>menjana<🎝>HTML<🎝>dokumentasi<🎝>dari<🎝>Java<🎝>sumber<🎝>kod,<🎝>menggunakan<🎝>yang<🎝>istimewa<🎝>/**<🎝 >*/<🎝>ulasan<🎝>dikenali<🎝>sebagai<🎝>doc<🎝>ulasan.
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)
Atas ialah kandungan terperinci Gambaran Keseluruhan Ekosistem Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!