Phase 1 of 20 · Topic 1.1

What is Java, History & Key Features

1Concept

Java was developed by James Gosling at Sun Microsystems in 1995 (originally named Oak) and acquired by Oracle in 2010. Java is a high-level, class-based, object-oriented programming language designed for platform independence ('Write Once, Run Anywhere' - WORA). Core features include: Simple syntax (C++ inspired without pointers or operator overloading), Robust (strong memory management & garbage collection), Secure (sandboxed JVM execution & bytecode verification), Multithreaded (built-in concurrency support), and High Performance (HotSpot JIT compiler).

2Architecture Diagram

+-------------------------------------------------------------------------+
|                              JAVA ECOSYSTEM                             |
|  +-------------------------------------------------------------------+  |
|  | JDK (Java Development Kit)                                        |  |
|  |  [ Compilers (javac), Debuggers (jdb), Archivers (jar), jlink ]   |  |
|  |  +-------------------------------------------------------------+  |  |
|  |  | JRE (Java Runtime Environment)                              |  |  |
|  |  |  [ Core Class Libraries (rt.jar / java.base), Security ]    |  |  |
|  |  |  +-------------------------------------------------------+  |  |  |
|  |  |  | JVM (Java Virtual Machine)                            |  |  |  |
|  |  |  |  [ ClassLoader, JIT Compiler, Garbage Collector, GC ] |  |  |  |
|  |  |  +-------------------------------------------------------+  |  |  |
|  |  +-------------------------------------------------------------+  |  |
|  +-------------------------------------------------------------------+  |
+-------------------------------------------------------------------------+

3Code Example

Core Java
public class JavaFundamentals {
    public static void main(String[] args) {
        System.out.println("=== Java Platform Architecture ===");
        System.out.println("Java Vendor: " + System.getProperty("java.vendor"));
        System.out.println("Java Version: " + System.getProperty("java.version"));
        System.out.println("JVM Name: " + System.getProperty("java.vm.name"));
        System.out.println("Architecture: " + System.getProperty("os.arch"));
    }
}

4Expected Output

=== Java Platform Architecture ===
Java Vendor: Oracle Corporation
Java Version: 21.0.2
JVM Name: OpenJDK 64-Bit Server VM
Architecture: amd64

5Key Takeaways

  • JDK = JRE + Development Tools; JRE = JVM + Standard Class Libraries.
  • Bytecode (.class) is platform-independent; JVM is platform-specific.
  • JIT (Just-In-Time) compiler dynamically converts bytecode into native machine code at runtime.