Understanding Java: Its Ecosystem, Editions, JDK/JRE, OpenJDK, and the JVM
This article provides a comprehensive overview of Java, explaining its evolution from a simple programming language to a broad technology ecosystem that includes Java SE, EE, ME, the JDK and JRE, OpenJDK, the Java Community Process, and the role of the JVM in achieving write‑once‑run‑anywhere.
Preface
Let's look at some promotional claims about Java from its official site, such as "97% of enterprise desktops run Java" and "3 billion mobile phones run Java".
97% of enterprise desktops run Java
89% of U.S. desktops run Java
9 million Java developers worldwide
Developers' top choice
Number‑one deployment platform
3 billion mobile phones run Java
All Blu‑ray players include Java
5 billion Java cards in use
125 million TV devices run Java
Top five OEMs provide Java ME
Impressive, right? But beyond the hype, what exactly is Java? Many think of it merely as a programming language, which is true, but Java actually represents a much broader technology stack.
What Is Java?
After many years of development, Java has evolved from a pure programming language into a powerful technology system. It is divided into three inter‑dependent branches:
Java SE (Standard Edition) – primarily for desktop applications and includes the core Java API.
Java EE (Enterprise Edition) – for enterprise‑level applications, adding web, transaction, distributed, EJB, and messaging components, and is the preferred platform for building SOA.
Java ME (Micro Edition) – for embedded devices, offering a trimmed‑down set of APIs and device‑specific components.
The Java ecosystem also consists of the language itself, bytecode, the Java API (including third‑party libraries), and the Java Virtual Machine.
Java Advantages
Java’s widespread adoption stems from several key strengths:
Platform independence – "write once, run anywhere".
Robust memory management that reduces leaks and pointer errors.
Hot‑spot detection and runtime compilation/optimization for improving performance over time.
A rich set of APIs and countless third‑party libraries.
Built‑in support for distributed technologies.
Beyond these technical merits, Java’s greatest asset is its massive global community and open‑source ecosystem, which continuously drives its evolution.
JDK and JRE
The Java Development Kit (JDK) provides the minimal environment for developing Java programs, comprising the language, the JVM, and the core API libraries. The Java Runtime Environment (JRE) supplies the runtime components – the core API and the JVM – needed to run Java applications.
OpenJDK
Originally, the JDK was not open source, but in 2006 Sun opened the code, leading to the OpenJDK project. OpenJDK is a fork of Oracle JDK with non‑open components removed or replaced. While largely compatible, some differences remain, especially in cryptography and graphics.
Source code for OpenJDK, including HotSpot, the Java compiler (javac), and JNI, can be downloaded from the OpenJDK website.
JCP and JSR
The Java Community Process (JCP) defines Java specifications through Java Specification Requests (JSRs). After public review and committee voting, a JSR becomes an official specification, often with a reference implementation that is free and open source. Notable JSRs include:
JSR 14 – Generics
JSR 51 – NIO
JSR 175 – Annotations
JSR 201 – Enums and autoboxing
JSR 221 – JDBC 4.0 API
Java Virtual Machine
The JVM enables Java’s "write once, run anywhere" promise by abstracting away underlying operating system details. The most common JVM is HotSpot, which can be inspected via the command java -version . Other notable JVMs include KVM, Squawk, Maxine, JRockit, and IBM’s J9.
Afterword
Deepening your understanding of the JVM can help solve complex problems and even enable you to customize a VM for large‑scale projects, as some companies have done. While a developer focused solely on coding may not need to explore beyond the language, aspiring Java experts or CTOs will find JVM knowledge indispensable.
Original source: cnblogs.com/xrq730/p/4826691.html
Java Captain
Focused on Java technologies: SSM, the Spring ecosystem, microservices, MySQL, MyCat, clustering, distributed systems, middleware, Linux, networking, multithreading; occasionally covers DevOps tools like Jenkins, Nexus, Docker, ELK; shares practical tech insights and is dedicated to full‑stack Java development.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.