Search
  • +44-7459919437 (UK- WhatsApp & Direct Call) | +91-6383544892 (India - WhatsApp Only) | Email Id : vinothrwins@gmail.com
Vinoth Q.A Academy
  • Home
  • Selenium Java Online Training
  • Self Paced Video Course
    • Selenium Course Curriculum
    • Cypress Course Curriculum
    • Playwright Course Curriculum
  • Tutorials
  • Demo Sites
    • Practice Automation
      • Demo Page Healthcare
      • Registration Form
      • Transaction Details
      • DropDown
      • Mouse Event
      • Keyboard Events
      • Alert and Popup
      • Multiple Windows
      • iFrames
      • Wait WebElement
      • WebTable
  • FAQS
  • About Me & Feedback
    • Placed Students Feedback
    • Online Training Feedback
    • LinkedIn Profile
    • TechTalk
  • Free YouTube Courses
    • Python for Automation
    • Free QA Video Courses
      • Manual Testing
      • Java For Automation
      • Selenium Webdriver
      • TestNG
      • Cucumber BDD
      • UFT(QTP) Automation
    • Free Data Science Courses
      • Artificial Intelligence for Beginners
      • Python For A.I
      • Python Pandas
      • Python NumPy
      • Mathematics for A.I
  • Home
  • Selenium Java Online Training
  • Self Paced Video Course
    • Selenium Course Curriculum
    • Cypress Course Curriculum
    • Playwright Course Curriculum
  • Tutorials
  • Demo Sites
    • Practice Automation
      • Demo Page Healthcare
      • Registration Form
      • Transaction Details
      • DropDown
      • Mouse Event
      • Keyboard Events
      • Alert and Popup
      • Multiple Windows
      • iFrames
      • Wait WebElement
      • WebTable
  • FAQS
  • About Me & Feedback
    • Placed Students Feedback
    • Online Training Feedback
    • LinkedIn Profile
    • TechTalk
  • Free YouTube Courses
    • Python for Automation
    • Free QA Video Courses
      • Manual Testing
      • Java For Automation
      • Selenium Webdriver
      • TestNG
      • Cucumber BDD
      • UFT(QTP) Automation
    • Free Data Science Courses
      • Artificial Intelligence for Beginners
      • Python For A.I
      • Python Pandas
      • Python NumPy
      • Mathematics for A.I

Java

  • What is Java?
  • Why to Learn Java?
  • History of Java
  • Types of Java Applications
  • Naming Conventions
  • Hello World Program
  • Internal Details of Java program
  • What is Java JDK, JRE and JVM ?
  • What is Java Comments ?
  • What is Java Variable?
  • Variable Naming convention
  • Primitive Data Types
  • Non Primitive Data Types
  • Type Casting
  • Java Arithmetic Operators
  • Relational Operators
  • What is logical operators in Java? 
  • What is Assignment Operators in Java? 
  • What is Unary Operators in Java? 
  • What is Ternary Operators in Java?
  • What is Java Control Statements?
  • What are Decision Making statements?
  • What are looping statements?
  • What are Jump statements?
  • What is OOPS concept in Java?
  • Advantages of Java OOPs
  • What is Java Inheritance?
  • What is Java Constructor?
  • What is this keyword?
  • What is Polymorphism?
  • What is super keyword ?
  • What is final keyword? 
  • What are access modifiers?
  • What is Encapsulation? 
  • What is Abstraction? 
View Categories
  • Home
  • Tutorials
  • Java
  • Java
  • What is Java JDK, JRE and JVM ?

What is Java JDK, JRE and JVM ?

What is Java JDK, JRE and JVM ?

Java is a robust programming language, and understanding its core components is crucial for developers. The three main components that make up the Java platform are the Java Development Kit (JDK), Java Runtime Environment (JRE), and Java Virtual Machine (JVM). Here’s a detailed explanation of each:

Java Development Kit (JDK) #

Definition: The JDK is a software development environment used for developing Java applications and applets. It provides all the tools and libraries necessary to compile, debug, and execute Java applications.

Components:

  • Java Compiler (javac): Converts Java source code into bytecode.
  • Java Runtime Environment (JRE): Included within the JDK to run Java programs.
  • Java Debugger (jdb): Helps in debugging Java programs.
  • Archiver (jar): Packages related class libraries into a single JAR file.
  • Documentation Generator (javadoc): Generates HTML documentation from Java source code comments.
  • Other Tools: Such as javap for class file disassembler, javafxpackager for JavaFX packaging, and more.

Use Case: The JDK is used by developers to write, compile, and debug Java applications. Without the JDK, you cannot create Java applications.

Java Runtime Environment (JRE) #

Definition: The JRE provides the libraries, Java Virtual Machine (JVM), and other components to run applications written in Java. It does not include tools for developing Java applications like compilers or debuggers.

Components:

  • Java Virtual Machine (JVM): Executes Java bytecode.
  • Class Libraries: Essential libraries that provide basic functionalities needed by Java applications.
  • Supporting Files: Configuration and property files.

Use Case: The JRE is used to run Java applications. It is suitable for users who need to run Java programs but do not need to develop them.

Java Virtual Machine (JVM) #

Definition: The JVM is a part of the JRE. It is the engine that provides a runtime environment to execute Java bytecode. The JVM is platform-independent and is responsible for converting bytecode into machine-specific code.

Components:

  • Class Loader: Loads class files into the JVM.
  • Bytecode Verifier: Checks the code fragments for illegal code that can violate access rights.
  • Interpreter: Converts bytecode into native machine code.
  • JIT Compiler: (Just-In-Time Compiler) Compiles bytecode into native code for better performance.
  • Garbage Collector: Manages memory by removing unused objects.

Use Case: The JVM is used to run Java programs, making them platform-independent. It allows the same Java bytecode to run on any platform that has a compatible JVM.

Relationship Between JDK, JRE, and JVM #

  • JDK: The JDK includes both the JRE and the development tools necessary for creating Java programs.
  • JRE: The JRE includes the JVM and the libraries required to run Java applications.
  • JVM: The JVM is the core part of the JRE that actually executes Java bytecode.

Diagram

+—————————-+

|          JDK               |

|                            |

| +————————+ |

| |         JRE            | |

| |                        | |

| | +——————–+ | |

| | |       JVM          | | |

| | |                    | | |

| | | – Class Loader     | | |

| | | – Bytecode Verifier| | |

| | | – Interpreter      | | |

| | | – JIT Compiler     | | |

| | | – Garbage Collector| | |

| | +——————–+ | |

| |                        | |

| | – Class Libraries     | |

| | – Supporting Files    | |

| +————————+ |

|                            |

| – Compiler (`javac`)       |

| – Debugger (`jdb`)         |

| – Archiver (`jar`)         |

| – Documentation Generator  |

| – Other Development Tools  |

+—————————-+

Summary #

  • JDK (Java Development Kit): A full development environment that includes the JRE and tools for developing, debugging, and monitoring Java applications.
  • JRE (Java Runtime Environment): Provides the necessary environment for running Java applications, including the JVM and class libraries.
  • JVM (Java Virtual Machine): The engine within the JRE that executes Java bytecode and provides platform independence.

Understanding these components helps in setting up the correct environment for Java development and ensures the efficient execution of Java applications.

Java
What are your Feelings
Share This Article :
  • Facebook
  • X
  • LinkedIn
Internal Details of Java programWhat is Java Comments ?
Table of Contents
  • Java Development Kit (JDK)
  • Java Runtime Environment (JRE)
  • Java Virtual Machine (JVM)
  • Relationship Between JDK, JRE, and JVM
  • Summary
© Copyright [2018-2025]. All Rights Reserved.