What is JRE?
JRE (Java Runtime Environment) is a software package that provides Java class libraries, Java Virtual Machine (JVM), and other components that are required to run Java applications.
JRE is the superset of JVM.
If you need to run Java programs, but not develop them, JRE is what you need. You can download JRE from Java SE Runtime Environment 8 Downloads page.
JDK
JDK means Java Development Kit. Java Development Kit is a software development kit used for Java and other applications. It is a package of software that helps in the execution and compilation of Java Programs. It has a physical existence. That means, when installed on a computer it is possible to see it in the Java installation directory. One cannot, technically, use Java programmers without JDK,if the programs are not compiled already. These kits have all the JRE development tools. It is possible to create more than one version of this kit in a system. This Kit includes both JRE and JVM.
Tìm hiểu JDK
JDK (là viết tắt của Java Development Kit) bao gồm JRE và các Development Tool.
Java Development Kit (JDK) is a software development environment used for developing Java applications and applets. It includes the Java Runtime Environment (JRE), an interpreter/loader (Java), a compiler (javac), an archiver (jar), a documentation generator (Javadoc), and other tools needed in Java development.
Now we need an environment to make a run of our program. Henceforth, JRE stands for “Java Runtime Environment” and may also be written as “Java RTE.” The Java Runtime Environment provides the minimum requirements for executing a Java application; it consists of the Java Virtual Machine (JVM), core classes, and supporting files.
Now let us discuss JVM, which stands out for java virtual machines. It is as follows:
- A specification where the working of Java Virtual Machine is specified. But implementation provider is independent to choose the algorithm. Its implementation has been provided by Sun and other companies.
- An implementation is a computer program that meets the requirements of the JVM specification.
- Runtime Instance Whenever you write a java command on the command prompt to run the java class, an instance of JVM is created.
Before proceeding to the differences between JDK, JRE, and JVM, let us discuss them in brief first and interrelate them with the image below proposed.
Don’t get confused as we are going to discuss all of them one by one.
1. JDK (Java Development Kit) is a Kit that provides the environment to develop and execute(run) the Java program. JDK is a kit(or package) that includes two things
- Development Tools(to provide an environment to develop your java programs)
- JRE (to execute your java program).
2. JRE (Java Runtime Environment) is an installation package that provides an environment to only run(not develop) the java program(or application)onto your machine. JRE is only used by those who only want to run Java programs that are end-users of your system.
3. JVM (Java Virtual Machine) is a very important part of both JDK and JRE because it is contained or inbuilt in both. Whatever Java program you run using JRE or JDK goes into JVM and JVM is responsible for executing the java program line by line, hence it is also known as an interpreter.
Now let us discuss the components of JRE in order to understand its importance of it and perceive how it actually works. For this let us discuss components.
The components of JRE are as follows:
- Deployment technologies, including deployment, Java Web Start, and Java Plug-in.
- User interface toolkits, including Abstract Window Toolkit (AWT), Swing, Java 2D, Accessibility, Image I/O, Print Service, Sound, drag, and drop (DnD), and input methods.
- Integration libraries, including Interface Definition Language (IDL), Java Database Connectivity (JDBC), Java Naming and Directory Interface (JNDI), Remote Method Invocation (RMI), Remote Method Invocation Over Internet Inter-Orb Protocol (RMI-IIOP), and scripting.
- Other base libraries, including international support, input/output (I/O), extension mechanism, Beans, Java Management Extensions (JMX), Java Native Interface (JNI), Math, Networking, Override Mechanism, Security, Serialization, and Java for XML Processing (XML JAXP).
- Lang and util base libraries, including lang and util, management, versioning, zip, instrument, reflection, Collections, Concurrency Utilities, Java Archive (JAR), Logging, Preferences API, Ref Objects, and Regular Expressions.
- Java Virtual Machine (JVM), including Java HotSpot Client and Server Virtual Machines.
After having an adequate understanding of the components, now let us discuss the working of JDK. In order to understand how JDK works, let us consider an illustration below as follows:
Illustration:
Consider a java source file saved as ‘Example.java’. The file is compiled into a set of Byte Code that is stored in a “.class” file. Here it will be “Example.class“.
Note: From above, media operation computing during the compile time can be interpreted.The following actions occur at runtime as listed below:
- Class Loader
- Byte Code Verifier
- Interpreter
- Execute the Byte Code
- Make appropriate calls to the underlying hardware
Now let us discuss in brief how JVM works out. It is as follows:
JVM becomes an instance of JRE at the runtime of a Java program. It is widely known as a runtime interpreter.JVM largely helps in the abstraction of inner implementation from the programmers who make use of libraries for their programs from JDK.
It is mainly responsible for three activities.
- Loading
- Linking
- Initialization
Similarly, now let us discuss the working of JRE which is as follows:
- JVM(Java Virtual Machine) acts as a run-time engine to run Java applications. JVM is the one that actually calls the main method present in a java code. JVM is a part of JRE(Java Runtime Environment).
- Java applications are called WORA (Write Once Run Anywhere). This means a programmer can develop Java code on one system and can expect it to run on any other Java-enabled system without any adjustments. This is all possible because of JVM.
- When we compile a .java file, .class files(contains byte-code) with the same class names present in .java file are generated by the Java compiler. This .class file goes into various steps when we run it. These steps together describe the whole JVM.
Feeling lost in the vast world of Backend Development? It’s time for a change! Join our Java Backend Development – Live Course and embark on an exciting journey to master backend development efficiently and on schedule. What We Offer:
- Comprehensive Course
- Expert Guidance for Efficient Learning
- Hands-on Experience with Real-world Projects
- Proven Track Record with 100,000+ Successful Geeks
Last Updated :
03 Oct, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment…
By Pankaj
While we believe that this content benefits our community, we have not yet thoroughly reviewed it. If you have any suggestions for improvements, please let us know by clicking the “report an issue“ button at the bottom of the tutorial.
The difference between JDK, JRE, and JVM is one of the popular interview questions. You might also be asked to explain JDK vs JRE vs JVM.
JDK, JRE, and JVM are core concepts of Java programming language. We don’t use these concepts in programming. But, as a Java developer, we should know about them.
Java Development Kit aka JDK is the core component of Java Environment and provides all the tools, executables, and binaries required to compile, debug, and execute a Java Program. JDK is a platform-specific software and that’s why we have separate installers for Windows, Mac, and Unix systems. We can say that JDK is the superset of JRE since it contains JRE with Java compiler, debugger, and core classes.
JVM is the heart of Java programming language. When we execute a Java program, JVM is responsible for converting the byte code to the machine-specific code. JVM is also platform-dependent and provides core java functions such as memory management, garbage collection, security, etc. JVM is customizable and we can use java options to customize it. For example, allocating minimum and maximum memory to JVM. JVM is called virtual because it provides an interface that does not depend on the underlying operating system and machine hardware. This independence from hardware and the operating system makes java program write-once-run-anywhere.
JRE is the implementation of JVM. It provides a platform to execute java programs. JRE consists of JVM, Java binaries, and other classes to execute any program successfully. JRE doesn’t contain any development tools such as Java compiler, debugger, JShell, etc. If you just want to execute a java program, you can install only JRE. You don’t need JDK because there is no development or compilation of java source code is required. Now that we have a basic understanding of JDK, JVM, and JRE, let’s look into the difference between them.
Let’s look at some of the important differences between JDK, JRE, and JVM.
Sometimes you will find JIT alongside JVM, JDK, and JRE in textbooks. JIT is part of the JVM that optimizes the process of converting byte code to machine-specific language. It compiles similar byte codes at the same time and reduces the overall time taken for the compilation of byte code to machine-specific language.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
Below text from this article – JVM is called virtual because it provides an interface that does not depend on the underlying operating system and machine hardware. This independence from hardware and the operating system is what makes java program write-once-run-anywhere. Does JVM provided interface not depend on underlying platform. If that interface (i.e. loding, linking, JIT, interpreter etc) is same for all platforms then why JVMs are different for each platform. I feel this interface which takes byte code as input and gives you end result is platform dependent which makes Java platform independent. May be you can correct my understanding.
– Love Gupta
Thanks a lot!
– Saangram
Please update the version of Java.
– srinivas narla
very well explained,
– Vitthal Kasbe
JVM is also platform dependent under JVM , i hope this is a TYPO.
– Sailendra
I wish to know step by step execution and impacts , functionalties for jdk, jvm (including memory areas )m jre ? I mean i wish to know end-to-end flow when a java program gets executed (specially through various section inside JVM – among those i also wish to know impacts on memory areas (heap,stack, native area ), class loaders e.t.c.
– Bibhu Prasad Tripathy
very good.
– Leandro
Hi Pankaj, Thanks for such useful tutorials. You are doing great. Keep it up. I have some doubt about JIT. You said that it optimizes byte code to machine specific language compilation by compiling similar byte codes at same time. My question is that while converting byte code into machine specific code do all the byte code passes through JIT. Because i have heared that only interpretor also have its role in converting byte code into machine specific code. Or only similar byte codes are passes through JIT and rest all passes through interpreter. It would be very useful if you can elaborate it with some example.
– debu
This is to just let you know that you could update regarding ‘Current JDK Version’ information.
– gansai
I’m confused when I go to Oracles site to download the JDK and they ask if you want JDK for Java EE or JDK for Java SE. What if I want to ability to develop both. Do I really have to install 2 separate JDKs?
– Mike
Click below to sign up and get $200 of credit to try our products over 60 days!
Working on improving health and education, reducing inequality, and spurring economic growth? We’d like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
What is JVM, JRE, JDK and JIT
Most of the beginners find it difficult to understand the difference between these jargons. In short,
- Java Virtual Machine (JVM) is an abstract definition of a computing machine.
- Java Runtime Environment (JRE) is the implementation of the JVM.
- Java Development Kit (JDK) is a set of tools using which Java programs can be developed and compiled.
- Just In Time Compiler (JIT) runs on the fly in the execution environment to make optimizations on the program.
Difference Between JDK, JRE, and JVM
Parameter | JDK | JRE | JVM |
Full-Form | The JDK is an abbreviation for Java Development Kit. | The JRE is an abbreviation for Java Runtime Environment. | The JVM is an abbreviation for Java Virtual Machine. |
Definition | The JDK (Java Development Kit) is a software development kit that develops applications in Java. Along with JRE, the JDK also consists of various development tools (Java Debugger, JavaDoc, compilers, etc.) | The Java Runtime Environment (JRE) is an implementation of JVM. It is a type of software package that provides class libraries of Java, JVM, and various other components for running the applications written in Java programming. | The Java Virtual Machine (JVM) is a platform-independent abstract machine that has three notions in the form of specifications. This document describes the requirement of JVM implementation. |
Functionality | The JDK primarily assists in executing codes. It primarily functions in development. | JRE has a major responsibility for creating an environment for the execution of code. | JVM specifies all of the implementations. It is responsible for providing all of these implementations to the JRE. |
Platform Dependency | The JDK is platform-dependent. It means that for every different platform, you require a different JDK. | JRE, just like JDK, is also platform-dependent. It means that for every different platform, you require a different JRE. | The JVM is platform-independent. It means that you won’t require a different JVM for every different platform. |
Tools | Since JDK is primarily responsible for the development, it consists of various tools for debugging, monitoring, and developing java applications. | JRE, on the other hand, does not consist of any tool- like a debugger, compiler, etc. It rather contains various supporting files for JVM, and the class libraries that help JVM in running the program. | JVM does not consist of any tools for software development. |
Implementation | JDK = Development Tools + JRE (Java Runtime Environment) | JRE = Libraries for running the application + JVM (Java Virtual Machine) | JVM = Only the runtime environment that helps in executing the Java bytecode. |
Why Use It? |
Why use JDK?
Some crucial reasons to use JDK are: |
Why use JRE?
Some crucial reasons to use JRE are: |
Why use JVM?
Some crucial reasons to use JVM are: |
Features | Features of JDK | Features of JRE |
Features of JVM
Here are a few crucial features of JVM: |
Keep learning and stay tuned to get the latest updates on GATE Exam along with GATE Eligibility Criteria, GATE 2023, GATE Admit Card, GATE Application Form, GATE Syllabus, GATE Cut off, GATE Previous Year Question Paper, and more.
JVM, JDK, JRE: Có gì khác biệt giữa chúng?
Bài đăng này đã không được cập nhật trong 4 năm
Ba thành phần nền tảng Java không thể thiếu và cách chúng hoạt động cùng nhau trong các ứng dụng Java của bạn
Các nhà phát triển mới sử dụng Java thường tự hỏi có gì khác biệt Java Virtual Machine, Java Development Kit, Java Runtime Environment. Họ cũng tò mò về cách ba thành phần nền tảng Java này hoạt động cùng nhau trong các ứng dụng Java. Cuối cùng, các nhà phát triển cần biết họ sẽ tương tác với từng thành phần như thế nào.
Nói ngắn gọn:
- JVM là thành phần nền tảng Java thực thi các chương trình của bạn.
- JRE khởi tạo JVM và đảm bảo các phụ thuộc có sẵn cho các chương trình của bạn.
- JDK cho phép bạn tạo các chương trình Java có thể được thực thi và chạy bởi JVM và JRE.
Là nhà phát triển, bạn sẽ làm việc với JDK để viết các ứng dụng của mình và với JVM để gỡ lỗi và tối ưu hóa chúng, đặc biệt là về hiệu năng. JRE chủ yếu chạy ở chế độ nền, nhưng bạn có thể sử dụng nó để theo dõi ứng dụng và cấu hình bộ nhớ.
JVM là gi? Giới thiệu Java Virtual Machine
JVM quản lý bộ nhớ hệ thống và cung cấp môi trường thực thi di động cho các ứng dụng dựa trên Java
JVM (Java Virtual Machine)
JVM (Java Virtual Machine) là máy ảo dùng để chạy chương trình Java. Khi chạy chương trình Java, trình biên dịch Java sẽ biên dịch Java code thành bytecode. Sau đó, JVM sẽ thông dịch bytecode thành mã máy để CPU thực thi.
Các JVM nổi tiếng được Oracle phát hành là Java HotSpot Performance Engine, Jrockit. Trong đó, Java HotSpot là một JVM dành cho máy tính để bàn và máy chủ được sử dụng phổ biến nhất hiện nay.
What is JRE?
JRE stands for Java Runtime Environment. It is a runtime environment that is used for running the java applications in our system. The JRE contains JVM (Java Virtual Machine) along with a set of libraries and utilities that are required in order to run java applications. When we try to execute a java application, a runtime environment is provided by the JRE that contains all the necessary components that are required by the application to execute.
Features of JRE:
- JRE is a collection of tools that helps in the execution of the JVM. It also provides a few deployment tools like Java Plug-in and Java Web Start.
- A user can run java code efficiently with only JRE. Unfortunately, JRE does not allow writing java programs.
- JRE also includes some integration libraries such as JDBC (Java Database Connectivity), JNDI (Java Naming and Directory Interface), RMI (Remote Method Invocation), and others.
- In addition to JVM, it also contains a virtual machine client for Java HotSpot.
What is JRE?
JRE stands for Java Runtime Environment- also written as Java RTE. It is a set of software tools designed for running other software. It is an implementation of JVM, and JRE provides a runtime environment. In short, a user needs JRE to run any Java program. If not a programmer, the user doesn’t need to install the JDK- JRE alone will help run the Java programs.
All the versions of JDK come bundled up with the JRE (Java Runtime Environment). This way, a user doesn’t have to download and install JRE on their PC separately. The JRE also exists physically. It consists of a library set + a few more files that the JVM (Java Virtual Machine) deploys at the runtime.
What is AWS SDK for Java?
The AWS Software Development Kit (SDK) for Java simplifies the use of AWS services by providing a set of libraries that are consistent and familiar for Java developers. It supports higher-level abstractions for simplified development. AWS focused open-source Java libraries are available along with code examples and a Java API reference guide.
The AWS SDK for Java 2.0 code examples on GitHub contain Java code examples and real-world use cases for AWS services to help accelerate the development of your applications. In addition, the AWS SDK for Java API Reference Guide describes the API operations for the latest version of the AWS SDK for Java. The reference guide also provides sample requests, responses, and errors for the supported web services protocols.
Get started with AWS SDK for Java using the AWS SDK for Java Developer Guide, or visit the AWS Java Developer Center.
Cấu hình không gian heap(Configuring heap space)
Không gian heap là phần động nhất của hệ thống bộ nhớ Java. Bạn có thể sử dụng các cờ -Xms và -Xmx để cho Java biết mức độ lớn để bắt đầu heap và mức độ lớn để cho phép nó trở thành. Hiểu cách điều chỉnh các cờ này cho các nhu cầu chương trình cụ thể là một khía cạnh quan trọng của quản lý bộ nhớ trong Java. Ý tưởng là làm cho heap đủ lớn để garbage collection hoạt động hiệu quả nhất. Đó là, bạn muốn cho phép đủ bộ nhớ để cho chương trình chạy, nhưng bạn không muốn nó lớn hơn mức cần thiết.
FAQs Related to the Difference Between JDK, JRE, JVM
Here are some frequently asked questions related to the differences between JDK, JRE, and JVM.
1. Is the JRE required to run Java applications?Yes, the JRE is required to run Java applications. When you run a Java application, the JRE provides a runtime environment that includes the JVM and a set of libraries and utilities required for executing the application.
2. Can I run Java applications without installing the JDK?Yes, you can run Java applications by installing the JRE (Java Runtime Environment). However, if you want to develop Java applications, you’ll need the JDK as it includes the JRE along with additional development tools.
3. How does the JVM facilitate platform independence in Java?The JVM interprets the Java bytecode generated by the Java compiler. It abstracts the underlying hardware and operating system, allowing Java programs to run on any device or platform that has a compatible JVM installed, thus ensuring platform independence.
4. Are there different versions of JDK, JRE, and JVM available?Yes, Oracle, as well as other organizations and communities, release different versions of JDK, JRE, and JVM. These versions often include updates, enhancements, and bug fixes to improve performance and security.
5. Is the JDK required on a system where only JRE is needed for running Java applications?If you only intend to run Java applications and not develop them, installing the JRE suffices. The JDK, which includes the JRE, is necessary only for development purposes.
What is the Java Runtime Environment?
The Java Runtime Environment (JRE) is software that Java programs require to run correctly. Java is a computer language that powers many current web and mobile applications. The JRE is the underlying technology that communicates between the Java program and the operating system. It acts as a translator and facilitator, providing all the resources so that once you write Java software, it runs on any operating system without further modifications.
Các bước cài đặt JDK trên hệ điều hành Windows
Bước 1: Chạy file cài đặt
Bước 2: Tiến hành các thao tác cài đặt JDK
Nhấn Next để bắt đầu cài đặt.
Chọn đường dẫn JDK, mặc định là: “C:\Program Files\Java\jdk1.8.0_51\”
Chọn đường dẫn JRE, mặc định là: “C:\Program Files\Java\jre1.8.0_51\”
Quá trình cài đặt đang diễn ra, sau đó nhấn Finish để hoàn tất quá trình cài đặt.
Bước 3: Hoàn tất quá trình cài đặt
Sau khi cài đặt, chúng ta sẽ thấy thư mục đã cài đặt của JDK và JRE.
Cấu hình biến môi trường cho Java
Để có thể sử dụng các trình biên dịch và thông dịch Java trong hệ điều hành Windows, cần cấu hình biến môi trường cho Java trong Windows. Vào Control Panel, tìm mục Advanced system settings, chọn Environment Variables.
Nhấn New để tạo mới một biến môi trường có tên “JAVA_HOME”.
Thêm “%JAVA_HOME%\bin;” vào Variable value của biến Path.
Kiểm tra cấu hình biến môi trường thành công
Vào giao diện Command Prompt, gõ lệnh
java -version
, kết quả trả về cho thấy version đã cài đặt của Java là thành công.
Cấu hình không gian ngăn xếp(Configuring stack space)
Không gian ngăn xếp là nơi các hàm gọi và tham chiếu biến được xếp hàng. Không gian ngăn xếp là nguồn gốc của lỗi nổi tiếng thứ hai trong lập trình Java: ngoại lệ tràn ngăn xếp (đầu tiên là ngoại lệ con trỏ null). Ngoại lệ tràn ngăn xếp chỉ ra rằng bạn đã hết dung lượng ngăn xếp vì quá nhiều phần đã được bảo lưu. Thông thường, bạn sẽ nhận được một ngăn xếp tràn khi một phương thức hoặc phương thức gọi nhau theo kiểu vòng tròn, do đó dành một số lượng lớn các lệnh gọi hàm ngày càng tăng vào ngăn xếp.
Bạn sử dụng công tắc -Xss để định cấu hình kích thước bắt đầu ngăn xếp. Ngăn xếp sau đó phát triển linh hoạt theo nhu cầu của chương trình.
JDK là gì? Giới thiệu Java Development Kit
JDK là một thành phần nền tảng chính để xây dựng các ứng dụng Java. Trái tim của nó là trình biên dịch Java.
Java Development Kit (JDK) là một trong ba gói công nghệ cốt lõi được sử dụng trong lập trình Java, cùng với JVM (Java Virtual Machine) và JRE (Java Runtime Environment)
JRE có thể được sử dụng như một thành phần độc lập để chạy các chương trình Java, nhưng nó cũng là một phần của JDK. JDK yêu cầu JRE vì chạy các chương trình Java là một phần của việc phát triển chúng.
Các định nghĩa:
- Định nghĩa kỹ thuật: JDK là một triển khai của đặc tả nền tảng Java, bao gồm các trình biên dịch và thư viện lớp.
- Định nghĩa hàng ngày: JDK là gói phần mềm bạn tải xuống để tạo các ứng dụng dựa trên Java.
Nguồn tham khảo: https://www.javaworld.com/article/3272244/what-is-the-jvm-introducing-the-java-virtual-machine.html https://www.javaworld.com/article/3296360/what-is-the-jdk-introduction-to-the-java-development-kit.html https://www.javaworld.com/article/3304858/what-is-the-jre-introduction-to-the-java-runtime-environment.html
All rights reserved
Trong bài này, chúng ta sẽ tìm hiểu về JVM, JRE, JDK. Nó bao gồm những thành phần nào và nhiệm vụ của nó là gì?
JVM (Java Virtual Machine) là tạo ra môi trường máy ảo để thực thi mã java bytecode.
- Máy ảo Java là phần mềm giả lập máy tính, nó tập hợp các lệnh logic để xác định hoạt động của máy.
- Có thể xem nó như là một hệ điều hành thu nhỏ.
- JVM chuyển mã byte code thành machine code tùy theo môi trường tương ứng (gọi là khả năng khả chuyển)
- JVM cung cấp môi trường thực thi cho chương trình Java (gọi đó là khả năng độc lập với nền).
JVM có sẵn trong nhiều phần cứng và nền tảng phần mềm.
JVM gồm 4 nhiệm vụ chính: Load code, Verifies code, Executes code, Provides runtime enviroment.
JRE viết tắt Java Runtime Enviromement. Nó bao gồm các thư viện và các file mà JVM sử dụng lúc thực thi.
JDK viết tắt của Java Development Kit. Nó gồm JRE + công cụ phát triển.
Bộ công cụ JDK gồm các chương trình thực thi đáng chú ý sau:
- javac: Chương trình biên dịch các chương trình nguồn viết bằng ngôn ngữ java ra các tập tin thực thi được trên máy ảo Java.
- java: Một chương trình để dịch mã mà bạn viết thành mã bytecode, khi ứng dụng Java chạy nó dịch mã bytecode thành mã máy tính và thực thi, điều đó có nghĩa là bytecode chỉ là một mã trung gian.Đây là chương trình làm máy ảo của Java, thông dịch mã Bytecode của các chương trình kiểu application thành mã thực thi của máy thực.
- Archive (jar): Là một chương trình nén các file thành một file duy nhất có đuôi jar. Thường dùng để đóng gói các file class.
- Javadoc: Là một công cụ tạo ra tài liệu hướng dẫn sử dụng API.
- appletviewer: Bộ thông dịch, thực thi các chương trình kiểu applet.
- javadoc: Tạo tài liệu về chú thích chương trình nguồn một cách tự động.
- jdb: Trình gở rối.
- rmic: Tạo Stub cho ứng dụng kiểu RMI.
- rmiregistry: Phục vụ danh bạ (Name Server) trong hệ thống RMI
We must understand the differences between JDK, JRE, and JVM before proceeding further to Java. See the brief overview of JVM here. If you want to get the detailed knowledge of Java Virtual Machine, move to the next page. Firstly, let’s see the differences between the JDK, JRE, and JVM. JVM (Java Virtual Machine) is an abstract machine. It is called a virtual machine because it doesn’t physically exist. It is a specification that provides a runtime environment in which Java bytecode can be executed. It can also run those programs which are written in other languages and compiled to Java bytecode. JVMs are available for many hardware and software platforms. JVM, JRE, and JDK are platform dependent because the configuration of each OS is different from each other. However, Java is platform independent. There are three notions of the JVM: specification, implementation, and instance. The JVM performs the following main tasks: JRE is an acronym for Java Runtime Environment. It is also written as Java RTE. The Java Runtime Environment is a set of software tools which are used for developing Java applications. It is used to provide the runtime environment. It is the implementation of JVM. It physically exists. It contains a set of libraries + other files that JVM uses at runtime. The implementation of JVM is also actively released by other companies besides Sun Micro Systems. JDK is an acronym for Java Development Kit. The Java Development Kit (JDK) is a software development environment which is used to develop Java applications and applets. It physically exists. It contains JRE + development tools. JDK is an implementation of any one of the below given Java Platforms released by Oracle Corporation: The JDK contains a private Java Virtual Machine (JVM) and a few other resources such as an interpreter/loader (java), a compiler (javac), an archiver (jar), a documentation generator (Javadoc), etc. to complete the development of a Java Application. More Details. Next TopicJVM: Java Virtual Machine |
Hiểu rõ sự khác nhau giữa JDK, JRE và JVM là điều khá quan trọng trong Java.
Nội dung chính
JRE (Java Runtime Environment)
JRE (Java Runtime Environment) là môi trường thực thi Java bao gồm JVM, các thư viện và những thành phần bổ sung để chạy những ứng dụng được viết bằng Java.
JRE (Java Runtime Environment) bản chất là một gói phần mềm bao gồm cả JVM. Nếu chỉ cần chạy chương trình Java mà không cần thêm công cụ phát triển, chúng ta chỉ cần JRE là đủ. Chúng ta có thể download JRE từ website Java SE Runtime Environment của Oracle.
JVM
JVM means Java Virtual Machine. It is an abstract machine that provides specifications regarding the runtime environment through which bytecode can be executed. JVM is platform-dependent, that is, it requires a hardware or software platform for performance. JVM loads, verifies and executes code while clearing the runtime environment. This machine provides a register set, class file format, memory area, and others for the proper execution of Java. JVM also helps in optimizing the program memory. Therefore, JDK, JRE, and JVM are interrelated. However, they are distinct from one another in several ways. Let us look at the distinction between JDK, JRE, and JVM.
Difference
JDK | JRE | JVM |
JDK stands for Java Development Kit | JRE stands for Java Runtime Environment | JVM stands for Java Virtual Machine |
It is platform-dependent | It is platform-dependent | It is platform-independent |
It is primarily responsible for executing Java Codes | It has the responsibility of creating an environment for the execution of codes | It has the responsibility of specifying all the implementations |
It is possible to create more than one version of this kit in a system, this Kit includes both JRE and JVM | It provides the system with the minimum requirements or environment needed for the execution of a Java program in a system | JVM loads, verifies and executes code while clearing the runtime environment |
It consists of tools for developing, managing, monitoring, and debugging several Java Codes | It consists of several class libraries and the supporting files which are required by the JVM | It does not include the tools for the development of software |
How does the JRE work?
The Java Runtime Environment (JRE) runs on top of the operating system, providing additional Java-specific resources. The Java Development Kit (JDK) and JRE interact to create a sustainable runtime environment that runs Java program files on any machine. The JRE uses three core components to work.
ClassLoader
Java class libraries contain collections of pre-written code that you can call as needed. They simplify the job of Java developers by providing built-in methods for common and non-trivial tasks such as taking input from users, displaying output to users, and more. All Java programs reference several class libraries. The Java ClassLoader dynamically loads all class files necessary into the Java Virtual Machine (JVM) on demand.
Bytecode verifier
The JDK has a compiler that converts the English-like code you write into a machine language version called Java bytecode. They bytecode verifier in the JRE checks the format and accuracy of the Java code before loading it into the JVM. For example, if the code violates system integrity or access rights, the JRE will not load the class file.
Interpreter
After the bytecode successfully loads, the Java interpreter creates the JVM instance that runs the Java program on the underlying machine.
What are the components of the JRE?
Other than the core components, the Java Runtime Environment (JRE) contains several other software components that help run Java programs more efficiently. The following are some examples:
Development tools
The JRE contains development tools such as user interface toolkits that you can use to improve the quality of your applications. The following are some examples:
Java 2D
Java 2D is an application programming interface (API) that you can use to draw two-dimensional graphics and create rich user interfaces, games, animations, and special effects in the Java language.
Swing
Swing is a lightweight graphical user interface (GUI) that offers flexible, user-friendly customizations.
Abstract Window Toolkit
Abstract Window Toolkit (AWT) is a GUI that you can use to create UI objects such as buttons, windows, and scroll bars.
Deployment solutions
The JRE includes technologies that simplify the process of releasing software changes to application users. These technologies also provide advanced support for updates in the application. Deployment technologies such as Java Web Start and Java plugin are included as part of the JRE installation. These technologies simplify the activation of applications and also provide advanced support for future updates to the JRE. The following are some examples:
Java Web Start
With Java Web Start, you can launch full-featured applications with a single click from your web browser.
Java Plugin
Java plugin establishes a connection between popular browsers and the Java platform so that you can run your website applets within a desktop browser.
Language and utility libraries
A collection of Java class files is called a Java package. The JRE includes several Java packages that support versioning, management, and monitoring. The following packages are some examples:
Collections framework
The collections framework is a unified architecture that includes interfaces for improving the storage and processing of application data.
Preferences API
The Preferences API allows multiple users on the same machine to define their own group of application preferences.
Logging
Logging packages produce log reports for troubleshooting incidents such as security failures, performance issues, and configuration errors.
Java Archive
Java Archive (JAR) is a platform-independent file format that lets you bundle multiple files to reduce your application file sizes and significantly improve download speed.
Integration libraries
The JRE includes several integration libraries that assist developers in creating seamless data connections between their services and applications. The following are some example libraries:
Java IDL
Java Interface Definition Language (IDL), which is based on the Common Object Request Broker Architecture (CORBA), supports distributed data objects—that is, objects that interact on different platforms across a network. For example, Java IDL allows objects written in Java to interact with those written in another language, such as C, C++, or COBOL.
Java Database Connectivity
Developers use the Java Database Connectivity (JDBC) API to write applications that can access remote databases, spreadsheets, and files.
Java Naming and Directory Interface
Java Naming and Directory Interface (JNDI) is a directory service that lets clients create portable applications that fetch information from external databases using naming rules.
What is JVM?
JVM stands for Java Virtual Machine, and it is a software component that allows your computer to run Java programs. When we write a Java program, it is compiled into bytecode. This bytecode can not execute on its own and requires JVM to run it.
The JVM has the responsibility of executing the bytecode and converting it into machine code that can be understood by the computer. The JVM also manages memory usage and performs garbage collection, which is the process of deallocating memory that is no longer needed by the program.
Listed below are some features of JVM
- JVM converts byte code into machine code which is understood by the computer.
- JVM provides fundamental Java functionalities such as management of memory, garbage collection, and so on.
- JVM uses libraries and files of JRE to run the java program.
- JVM is an essential component of JRE.
- It is capable of executing the java program line by line. Hence, it is also referred to as an interpreter.
- Primary functions of JVM includes program loading, linking, initialization, and compilation.
Runtime Enviroment là gì?
Một chương trình phần mềm cần phải thực thi và để thực hiện nó cần một môi trường để chạy. Runtime Enviroment tải các tệp lớp và đảm bảo có quyền truy cập vào bộ nhớ và các tài nguyên hệ thống khác để chạy chúng. Trước đây, hầu hết các phần mềm đều sử dụng hệ điều hành (HĐH) làm Runtime Enviroment. Chương trình chạy bên trong bất kỳ máy tính nào được bật, nhưng dựa vào cài đặt hệ điều hành để truy cập tài nguyên. Tài nguyên trong trường hợp này sẽ là những thứ như bộ nhớ và tệp chương trình và dependencies. Java Runtime Enviroment đã thay đổi tất cả, ít nhất là đối với các chương trình Java.
JRE chứa các thư viện và phần mềm mà các chương trình Java của bạn cần chạy. Ví dụ, trình tải lớp Java là một phần của Java Runtime Environment. Phần mềm quan trọng này tải mã Java được biên dịch vào bộ nhớ và kết nối mã với các thư viện lớp Java thích hợp.
Bộ nhớ Java và JRE
Bộ nhớ Java bao gồm ba thành phần: heap, stack và metaspace (trước đây được gọi là permgen).
- Metaspace là nơi Java giữ thông tin không thay đổi của chương trình như các định nghĩa lớp.
- Không gian heap (Heap space) là nơi Java giữ nội dung biến(variable content).
- Không gian ngăn xếp (Stack space) là nơi Java lưu trữ thực thi hàm(function execution) và tham chiếu biến(variable references).
Difference Between JDK, JRE and JVM
After reading the above introduction of all three components, now we will go through the table below to see the head-to-head difference between JDK JRE and JVM.
JDK | JRE | JVM |
JDK stands for Java Development Kit. | JRE stands for Java Runtime Environment. | JVM stands for Java Virtual Machine. |
The Java Development Kit (JDK) is a software development kit that lets you build Java applications. | The Java Runtime Environment (JRE) is a software package that includes the Java Virtual Machine (JVM), class libraries, and other components required to run Java applications. | The Java Virtual Machine (JVM) is an abstract machine that provides an environment for Java ByteCode execution. |
JDK includes tools for creating, monitoring, and debugging Java code. | JRE includes class libraries and other supporting files needed by JVM to run Java code. | JVM has no software development tools. |
It is platform-dependent | It is also platform-dependent like JDK | It is platform-independent |
The JDK mainly assists in code execution. Its primary purpose is development. | JRE is primarily tasked with creating an environment for code execution. | All implementations are specified by JVM. It is in charge of providing all of these implementations to the JRE. |
JDK = Development Tools + JRE | JRE = Class libraries + JVM | JVM = provides a runtime environment. |
ConclusionIn essence, comprehending the disparity between JDK, JRE, and JVM is crucial for any Java developer. The JDK encompasses the complete set of tools needed for Java development, including the JRE, whereas the JRE is an execution environment for running Java applications. On the other hand, the JVM is the runtime instance that executes Java bytecode. Together, these components form a cohesive ecosystem that facilitates Java programming, ensuring seamless development, deployment, and execution of Java applications across various platforms.
Quản lý bộ nhớ trong java 8
Cho đến Java 8, metaspace được biết đến như là permgen. Bên cạnh việc là một cái tên hay hơn nhiều, metaspace là một thay đổi quan trọng đối với cách các nhà phát triển tương tác với không gian bộ nhớ của Java. Trước đây, bạn sẽ sử dụng lệnh * java -XX: MaxPermSize* để theo dõi kích thước của không gian permgen. Từ Java 8 trở đi, Java sẽ tự động tăng kích thước của metaspace để đáp ứng nhu cầu meta của chương trình của bạn. Java 8 cũng giới thiệu một cờ mới, MaxMetaspaceSize, có thể được sử dụng để giới hạn kích thước metaspace.
Các tùy chọn bộ nhớ khác, heap và stack, vẫn giữ nguyên trong Java 8.
What is JDK?
JDK stands for Java Development Kit. It is a complete software environment for building applications using Java language. It contains a collection of tools and utilities which are very essential for a developer for writing, compiling, and debugging. The JDK is platform-dependent and because of this reason, it has different OS platform versions for Windows, Linux, Mac, and so on.
The JDK contains the Java Runtime Environment (JRE), which provides the Java Virtual Machine (JVM) for executing Java code. The JDK also contains the Java compiler, which converts our Java source code into Java bytecode that can be executed on any machine that has a compatible JVM in it. The JDK also offers a variety of tools for debugging, testing, and monitoring our Java applications.
Below listed are the features of JDK:
- JDK provides an environment for writing and running Java source code.
- JDK provides all the functionalities of JRE and JVM.
- JDK enables developers in handling exceptions smoothly by integrating many extensions together into a single catch block.
- It also provides a debugger, compiler, and other development tools.
Java Development Kit (JDK)
Java JDK is the software bundle using which the Java applications can be developed. JDK’s main component is the Java compiler using which the Java source code is compiled to byte code. Along with the Java compiler it contains more tools like Jar, JConsole, Javaw, etc. These help tools help in various different aspects of developing a Java application. The JDK bundle can be downloaded from the above given link in Oracle’s website.
What is JVM?
JVM (Java Virtual Machine) is an abstract machine that enables your computer to run a Java program.
When you run the Java program, Java compiler first compiles your Java code to bytecode. Then, the JVM translates bytecode into native machine code (set of instructions that a computer’s CPU executes directly).
Java is a platform-independent language. It’s because when you write Java code, it’s ultimately written for JVM but not your physical machine (computer). Since JVM executes the Java bytecode which is platform-independent, Java is platform-independent.
If you are interested in learning about JVM Architecture, visit The JVM Architecture Explained.
Why is the JRE important?
A software program needs a runtime environment that provides access to memory and other system resources such as program files and dependencies. In the past, most software used the operating system directly as its runtime environment. However, this meant that developers had to write different code for each operating system that they wanted their applications to run on. The Java Runtime Environment (JRE) technology was created as a solution to this problem.
The JRE is actually one of three Java platform components that are required for any Java program to run successfully. The Java Development Kit (JDK) and Java Virtual Machine (JVM) are the other two components.
Java Development Kit
The JDK is a collection of software tools that you can use for developing Java applications. You can set up the JDK in your development environment by downloading and installing it. Select the JDK software version that matches the Java version you want to use. For example, Java Standard Edition, or Java SE, requires the Java SE JDK.
Java Virtual Machine
The JVM is software that runs the Java program line by line. Developers configure the JVM settings to manage program resources when the Java application runs. For example, you can change the JVM memory setting and check how much internal memory your Java applications use at runtime.
Role of the JRE in Java programming language
The JRE combines the Java code that you create by using the JDK with additional built-in code called libraries. It then creates a JVM instance, or local copy, that finally runs the Java programs. JVMs are available for multiple operating systems, and the JRE generates a single copy of your Java code that runs on all types of JVMs. In this way, the JRE facilitates platform independence for Java applications. You can write them once and run them anywhere.
Difference between the JRE, JVM, and JDK
The JDK is a software layer above the JRE that contains a compiler, a debugger, and other tools commonly found in any software development environment. You write code in English-like syntax in the JDK. The JDK compiles it and passes the byte code to the JRE. In contrast, the JRE contains class libraries, supporting files, and the JVM. It uses these software components to run the byte code on any device.
Tải và thực thi class files trong JVM
Java class loader trong JVM
Mọi thứ trong java là một lớp(class), và tất cả các ứng dụng Java được xây dựng từ các lớp(classes). Một ứng dụng có thể bao gồm một lớp hoặc hàng ngàn lớp. Để chạy một ứng dụng Java, JVM phải tải các tệp .class đã biên dịch vào context, chẳng hạn như một máy chủ, nơi chúng có thể được truy cập. Một JVM phụ thuộc vào trình tải lớp của nó để thực hiện chức năng này.
Trình tải lớp Java là một phần của JVM tải các lớp vào bộ nhớ và làm cho chúng có sẵn để thực thi. Trình nạp lớp sử dụng các kỹ thuật như lazy-loading và caching để làm cho việc tải lớp hiệu quả nhất có thể.
Công cụ thực thi trong JVM(The execution engine in the JVM)
Khi trình tải lớp đã hoàn thành công việc tải các lớp, JVM bắt đầu thực thi mã trong mỗi lớp. Công cụ thực thi là thành phần JVM xử lý chức năng này. Công cụ thực thi là điều cần thiết cho JVM đang chạy. Mã thực thi liên quan đến việc quản lý truy cập vào tài nguyên hệ thống. Công cụ thực thi JVM nằm giữa chương trình đang chạy – với nhu cầu về tài nguyên tệp, mạng và bộ nhớ – và hệ điều hành, cung cấp các tài nguyên đó.
Cách công cụ thực thi quản lý tài nguyên hệ thống
Tài nguyên hệ thống có thể được chia thành hai loại lớn: bộ nhớ và mọi thứ khác.
Hãy nhớ lại rằng JVM chịu trách nhiệm xử lý bộ nhớ không sử dụng và bộ sưu tập rác(garbage collection) là cơ chế thực hiện việc xử lý đó. JVM cũng chịu trách nhiệm phân bổ và duy trì cấu trúc tham chiếu mà nhà phát triển được cấp. Ví dụ, công cụ thực thi của JVM chịu trách nhiệm lấy một cái gì đó giống như từ khóa new trong Java và biến nó thành một yêu cầu dành riêng cho hệ điều hành để cấp phát bộ nhớ.
Ngoài bộ nhớ, công cụ thực thi quản lý tài nguyên để truy cập hệ thống tệp và network I/O . Do JVM có thể tương tác trên các hệ điều hành, nên đây không phải là nhiệm vụ . Ngoài nhu cầu tài nguyên của từng ứng dụng, công cụ thực thi phải đáp ứng với từng môi trường HĐH.
JRE là gì? Giới thiệu Java Runtime Environment
JRE tạo JVM và đảm bảo các phụ thuộc có sẵn cho các chương trình Java của bạn.
Thực tế mà nói, runtime enviroment là một phần mềm được thiết kế để chạy các phần mềm khác. Là runtime enviroment cho Java, JRE chứa các thư viện lớp Java, trình tải lớp Java và Máy ảo Java. Trong hệ thống này:
- Trình tải lớp chịu trách nhiệm tải chính xác các lớp và kết nối chúng với các thư viện lớp Java cốt lõi.
- JVM chịu trách nhiệm đảm bảo các ứng dụng Java có tài nguyên mà chúng cần để chạy và hoạt động tốt trong thiết bị hoặc môi trường đám mây của bạn.
- JRE chủ yếu là một thùng chứa cho các thành phần khác và chịu trách nhiệm điều phối các hoạt động của chúng.
Java Runtime Environment (JRE)
JRE is the software environment where the compiled Java byte codes executes. JRE is the implementation of JVM it includes the code required for running the programs and native code. It contains the implementation of Java interpreter, garbage collector, class loader, java class libraries and related files. You can download the JRE separately or as a bundle along with JDK from Oracle’s website.
What is JDK?
JDK is an abbreviation for Java Development Kit. It is an environment of software development used for developing applets and Java applications. JDK has a physical existence, and it contains JRE + development tools. One can easily install more than one version of JDK on the same computer. The Java developers can make use of it on macOS, Windows, Linux, and Solaris. JDK assists them in coding and running the Java programs.
It is an implementation of any of the given Java Platforms that the Oracle Corporation released:
- Micro Edition
- Enterprise Edition
- Standard Edition
The JDK consists of a private JVM (Java Virtual Machine) along with a few other resources, java (a loader/interpreter), like javac (a compiler), Javadoc (a documentation generator), jar (an archiver), etc., for completing the process of Java application development.
Java Virtual Machine (JVM)
JVM is an abstract computing machine used to implement Java language. JVM is the key component in the Java eco system. Java’s important property is platform independence and to achieve that the role of JVM is critical. The JVM sits on top of the hardware and is used to execute the Java programs. Input for the JVM is Java byte code and it interprets the instructions in the byte code thus executing the programs.
What is JVM?
JVM stands for Java Virtual Machine. It provides a runtime environment for driving Java applications or code. JVM is an abstract machine that converts the Java bytecode into a machine language. It is also capable of running the programs written by programmers in other languages (compiled to the Java bytecode). The JVM is also known as a virtual machine as it does not exist physically.
JVM is essentially a part of the JRE (Java Run Environment). You cannot separately download and install it. You first need to install the JRE to install the JVM. It is available for many software and hardware platforms. In various distinct programming languages, the compiler functions to produce machine code for specific systems. However, only the Java compiler produces code for a virtual machine- also known as JVM.
All three, JDK, JRE, and JVM, are dependent. It is because each Operating System’s (OS) condition is different from one another. But Java is independent of the platform. The JVM has three notions: implementation, instance, and specification.
JVM primarily performs the following tasks:
- Provides runtime environment
- Verifies code
- Loads code
- Executes code
Quản lí bộ nhớ trong JVM
Tương tác phổ biến nhất với JVM đang chạy là kiểm tra mức sử dụng bộ nhớ trong heap và stack. Điều chỉnh phổ biến nhất là điều chỉnh các cài đặt bộ nhớ của JVM.
Thu gom rác(Garbage collection)
Trước Java, tất cả bộ nhớ chương trình được quản lý bởi lập trình viên. Trong Java, bộ nhớ chương trình được quản lý bởi JVM. JVM quản lý bộ nhớ thông qua một quá trình gọi là bộ sưu tập rác(garbage collection), liên tục xác định và loại bỏ bộ nhớ không sử dụng trong các chương trình Java. Việc thu gom rác xảy ra bên trong một JVM đang chạy.
Out of all the programming languages, Java is the most common one for the purpose of development today. Most developers use it for mobile and desktop computing, game development, back-end development, etc. Here, JVM, JRE, and JDK play a crucial role in the development process with Java. Before getting a detailed knowledge of this language, we must know the significant difference between JDK, JRE, and JVM. In this article, we will discuss the same. But first, let’s get a brief overview of them individually.
Ultimate Guide to Kickstart your GATE Exam PreparationDownload the e-book now
Just-in Time Compiler (JIT)
JIT compiler is a component that is part of the JVM and hence its implementation JRE. JIT runs when the Java program is interpreted and its objective is to optimize the Java program and make it efficient in terms of performance.
Last Updated on December 11, 2023 by Ankit Kochar
In the world of Java programming, the terminologies JDK (Java Development Kit), JRE (Java Runtime Environment), and JVM (Java Virtual Machine) hold pivotal roles. Understanding the differences among these components is fundamental for Java developers, as they form the backbone of Java application development. Each serves a distinct purpose in the execution and development of Java-based software.
JRE
JRE means Java Run-time Environment. It is primarily used for the implementation of JVM software in a system. It is principally made up of Java Binaries and other classes which are used to execute programs. This software includes Base libraries for JVM and other functionalities, deployment technologies, and user interfaces. JRE cannot develop or compile Java programs. In simple words, JRE is used for running JAVA Programs in a system. It provides the system with the minimum requirements or environment needed for the execution of a Java program in a system. JRE is commonly known as Java RTE.
JDK (Java Development Kit)
JDK (Java Development Kit) là bộ công cụ phát triển phần mềm Java. JDK (Java Development Kit) bao gồm JRE và những công cụ cần thiết để phát triển ứng dụng bằng ngôn ngữ Java. Khi download JDK thì JRE cũng được tích hợp trong JDK.
Các bạn có thể download JDK từ website Java SE Development Kit của Oracle.
Ngoài JRE, JDK bao gồm các công cụ phát triển Java:
-
- JAVAC: Chương trình dịch chuyển mã nguồn sang ByteCode;
- JAVA: Bộ thông dịch, thực thi Java Application;
- APPLETVIEWER: Bộ thông dịch, thực thi Java Applet;
- JAVADOC: Bộ tạo tài liệu dạng HTML từ mã nguồn và chú thích;
- JDB: Bộ gỡ lỗi (Java Debugger);
- JAVAP: Trình dịch ngược bytecode;
- JAR: Dùng để đóng gói lưu trữ các module viết bằng Java (tạo ra file đuôi *.jar), là phương pháp tiện lợi để phân phối những chương trình Java.
Mối quan hệ giữa JVM, JRE và JDK
Các phiên bản của JDK (Java Devenlopment Kit)
-
- JDK 1.02 (1995);
- JDK 1.1 (1996);
- JDK 1.2 (1998);
- JDK 1.3 (2000);
- JDK 1.4 (2002);
- JDK 1.5 (2004) (JDK 5 hoặc Java 5);
- JDK 1.6 (2006) (JDK 6 hoặc Java 6);
- JDK 1.7 (2011) (JDK 7 hoặc Java 7);
- JDK 1.8 (2014) (JDK 8 hoặc Java 8);
- Đến 2021, đã có JDK 17.
JDK còn có các bộ công cụ phát triển khác nhau cho các loại ứng dụng:
-
- Desktop applications – J2SE: viết các ứng dụng trên Desktop
- Server applications – J2EE: viết các ứng dụng chạy trên máy chủ website
- Mobile (embedded) applications – J2ME: viết các ứng dụng trên thiết bị di động, không dây, thiết bị nhúng,…
Tìm hiểu JVM
JVM (viết tắt của Java Virtual Machine) là một thiết bị trừu tượng (ảo) có thể giúp máy tính chạy các chương trình Java. Nó cung cấp môi trường runtime mà trong đó Java Bytecode có thể được thực thi.
JVM là có sẵn cho nhiều nền tảng (Windows, Linux…). JVM, JRE và JDK là phụ thuộc nền tảng, bởi vì cấu hình của mỗi OS (hệ điều hành) là khác nhau. Nhưng, Java là độc lập nền tảng.
Các nhiệm vụ chính của JVM
- Tải code
- Kiểm tra code
- Thực thi code
- Cung cấp môi trường runtime
Cấu trúc của JVM
Trong đó:
- Classloader: Là một hệ thống con của JVM được sử dụng để tải class file.
- Class (method) Area: Lưu trữ cấu trúc mỗi lớp, chẳng hạn như hằng, trường, dữ liệu phương thức, code của phương thức, …
- Heap: Nó là khu vực dữ liệu runtime mà trong đó đối tượng được cấp phát.
-
Stack: Stack trong Java lưu giữ các Frame. Nó giữ các biến cục bộ và các kết quả cục bộ, và thực hiện một phần nhiệm vụ trong phần triệu hồi và trả về phương thức. Mỗi Thread có một Stack riêng, được tạo tại cùng thời điểm với Thread.
Một Frame mới được tạo mỗi khi một phương thức được triệu hồi và bị hủy khi lời triệu hồi phương thức là kết thúc. - Program Counter Register: Nó chứa địa chỉ của chỉ lệnh JVM hiện tại đang được thực thi.
- Native Method Stack: Bao gồm tất cả các phương thức tự nhiện được sử dụng trong ứng dụng.
-
Execution Engine: Phần này bao gồm:
Một bộ xử lý ảo Virtual ProcessorMột trình thông dịch Interpreter. Đọc Bytecode Stream sau đó thực thi các chỉ thị. - Just-In-Time (JIT) Compiler: được sử dụng để cải thiện hiệu suất. JIT biên dịch các phần của Bytecode mà có cùng tính năng tại cùng một thời điểm, và vì thế giảm lượng thời gian cần thiết để biên dịch. Ở đây khái niệm Compiler là một bộ biên dịch tập chỉ thị của JVM thành tập chỉ thị của một CPU cụ thể.
Keywords searched by users: jdk jre jvm in java
Categories: Phổ biến 98 Jdk Jre Jvm In Java
See more here: kientrucannam.vn
See more: https://kientrucannam.vn/vn/