<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Muskie_29</title>
    <description>The latest articles on Forem by Muskie_29 (@muskmama).</description>
    <link>https://forem.com/muskmama</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3208149%2Fb57c8715-0b88-4835-ad26-75e90493bad5.png</url>
      <title>Forem: Muskie_29</title>
      <link>https://forem.com/muskmama</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/muskmama"/>
    <language>en</language>
    <item>
      <title>Introduction to Java Architecture and working Principles</title>
      <dc:creator>Muskie_29</dc:creator>
      <pubDate>Thu, 26 Jun 2025 10:32:24 +0000</pubDate>
      <link>https://forem.com/muskmama/introduction-to-java-architecture-and-working-principles-129o</link>
      <guid>https://forem.com/muskmama/introduction-to-java-architecture-and-working-principles-129o</guid>
      <description>&lt;p&gt;&lt;strong&gt;1. How Java Executes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Java Execution Process&lt;/em&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Client → &lt;strong&gt;Java Code&lt;/strong&gt; (Hello.java) → Compiler → Byte Code (Hello.class) → &lt;strong&gt;JVM&lt;/strong&gt; &lt;strong&gt;(JRE, JDK)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fenntqxqdkkgfevp99456.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fenntqxqdkkgfevp99456.jpg" alt="Image description" width="800" height="533"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Important Components :&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
The .class file Code can't Directly runs on the System.We need &lt;strong&gt;JVM&lt;/strong&gt; to run this.The Reason behind is &lt;strong&gt;Java is Plaftom Independent&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JVM – Java Virtual Machine&lt;br&gt;
JRE – Java Runtime Environment&lt;br&gt;
JDK – Java Development Kit&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Platform Independence meaning :&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;i) &lt;strong&gt;Platform independence&lt;/strong&gt; means the same code can run on all operating    systems,Source code must be converted to machine code for the computer to understand,A compiler helps convert human-readable code into executable form. &lt;/p&gt;

&lt;p&gt;ii) After compiling C/C++ code, we get &lt;strong&gt;.exe files&lt;/strong&gt; which are platform-dependent.&lt;/p&gt;

&lt;p&gt;iii)But Java compiles to bytecode, which is &lt;strong&gt;Platform-independent&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;iv)The &lt;strong&gt;JVM&lt;/strong&gt; converts bytecode to machine code.&lt;/p&gt;

&lt;p&gt;v) &lt;strong&gt;Java is platform-independent&lt;/strong&gt;, but &lt;strong&gt;JVM&lt;/strong&gt; is platform-dependent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.Architecture of Java&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0einu61bazvk8q3b9odp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0einu61bazvk8q3b9odp.jpg" alt="Image description" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Layered View:&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;JDK&lt;/strong&gt;&lt;br&gt;
 └── &lt;strong&gt;JRE&lt;/strong&gt; (&lt;strong&gt;JVM&lt;/strong&gt; + Library classes)&lt;br&gt;
      └── &lt;strong&gt;JVM&lt;/strong&gt;&lt;br&gt;
           └── &lt;strong&gt;JIT&lt;/strong&gt; (Just-In-Time Compiler)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.1 JDK:(Development tools + JRE)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Provides the environment to develop and run Java programs.&lt;br&gt;
A package that includes:&lt;/p&gt;

&lt;p&gt;i)  &lt;strong&gt;Development tools&lt;/strong&gt; – Environment to build programs.&lt;br&gt;
  ii) &lt;strong&gt;JRE&lt;/strong&gt; – Executes your program.&lt;br&gt;
  iii)Compiler – &lt;strong&gt;javac&lt;/strong&gt;&lt;br&gt;
  iv) Archiver – &lt;strong&gt;jar&lt;/strong&gt;&lt;br&gt;
  v)  Docs Generator – &lt;strong&gt;javadoc&lt;/strong&gt;&lt;br&gt;
  vi) &lt;strong&gt;Interpreter&lt;/strong&gt;/Loader&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.2 JRE:(JVM + Library Classes)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An installation package that provides the environment to run Java programs.&lt;br&gt;
&lt;strong&gt;JRE includes:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;i)  &lt;strong&gt;Deployment technologies&lt;/strong&gt;&lt;br&gt;
  ii) &lt;strong&gt;User interface toolkits&lt;/strong&gt;&lt;br&gt;
  iii)&lt;strong&gt;Integration libraries&lt;/strong&gt;&lt;br&gt;
  iv) &lt;strong&gt;Base libraries&lt;/strong&gt;&lt;br&gt;
  v)  &lt;strong&gt;JVM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. How JVM Works (Class Loader &amp;amp; Execution)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;At Compile Time:&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Java File (.java) → Compilation → .class file&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;At Runtime:&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;.class → Class Loader → Bytecode Verifier → Interpreter/JIT → Runtime → Hardware&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;JVM allocates:&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Heap Memory&lt;/strong&gt; → Stores objects&lt;br&gt;
  &lt;strong&gt;Stack Memory&lt;/strong&gt; → Stores function calls and variables&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.How JVM Works (Class Loader)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;i).   Loading:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reads &lt;code&gt;.class&lt;/code&gt; file and generates binary data.&lt;br&gt;
An object of the class is created in heap memory.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;ii).  Linking:&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Verification – Validates the &lt;code&gt;.class&lt;/code&gt; file.&lt;br&gt;
Preparation – Allocates memory for class variables and sets default values.&lt;br&gt;
Resolution – Replaces symbolic references with actual references.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;iii). Initialization:&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Assigns values to static variables.&lt;br&gt;
Executes static blocks in the class.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;iv)Interpreter:&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Line-by-line execution.&lt;/li&gt;
&lt;li&gt;Each method is called every time from the beginning.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;v)JIT (Just-In-Time Compiler):&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Optimizes performance.&lt;/li&gt;
&lt;li&gt;Replaces repeated interpreter steps with compiled native code.&lt;/li&gt;
&lt;li&gt;Avoids repeated interpretation.&lt;/li&gt;
&lt;li&gt;Speeds up execution.&lt;/li&gt;
&lt;li&gt;Useful for garbage collection too.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5.Working of Java Architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnlm9dzkkwnhuc8vwvwx9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnlm9dzkkwnhuc8vwvwx9.jpg" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;The source code is compiled by JDK into bytecode.&lt;br&gt;
The JVM takes bytecode and converts it into machine code.&lt;br&gt;
The program runs in JRE, and you get the output on screen.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>java</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
