Language
日本語
English

Caution

JavaScript is disabled in your browser.
This site uses JavaScript for features such as search.
For the best experience, please enable JavaScript before browsing this site.

  1. Home
  2. IT Terms & History Dictionary
  3. Java

Java

Java is a programming language released by Sun Microsystems (now Oracle) in 1995, designed under the leadership of James Gosling. The slogan "Write Once, Run Anywhere" captures its defining characteristic: the combination of bytecode and the JVM (Java Virtual Machine) allows Java programs to run on any platform without modification. Starting out in consumer electronics firmware, Java rose to dominate enterprise systems as the Web took off, and later expanded into mobile through Android.

The Origin of the Name

The prototype of Java was called Oak. Gosling named it after an oak tree he could see outside his office window. The name had to be changed, however, because another company had already trademarked "Oak."

The new name "Java" comes from the coffee shop the team frequented. "Java" refers to the Indonesian island of Java, renowned for its quality coffee beans. This is why the Java logo features a coffee cup.

1991: The Green Project — A Language Born from Consumer Electronics

Java originated in 1991 from the Green Project, led by Gosling at Sun Microsystems. The initial goal was to develop embedded software for television set-top boxes and home appliances. Because consumer-electronics processors varied by device, designing a system where the same code could run on any hardware was central to the project from the start.

Gosling retained C/C++ syntax while stripping out features that caused complexity — pointer arithmetic, multiple inheritance, and manual memory management — and designed a new language around them. The runtime adopted a virtual machine (initially called the "Green VM"), so the same bytecode could execute on different hardware architectures.

The Green Project's consumer-electronics product never achieved commercial success, but the underlying technology would flourish in a different arena.

Gosling's Design Philosophy — Five Principles

Java's design was shaped by five principles that Sun Microsystems articulated at the first release in 1995. Published in the Java white paper, these principles continue to guide Java's evolution three decades later.

PrincipleMeaning
Simple and familiarFollows C/C++ syntax while removing sources of complexity — pointer arithmetic, multiple inheritance, and operator overloading. Designed so that existing developers could learn the language quickly.
Secure memory management and bytecode verificationGarbage collection automates memory management; array bounds are checked at runtime. A bytecode verifier validates code before execution, so the JVM prevents invalid memory accesses.
Architecture-neutral and portableThe bytecode-plus-JVM combination means programs are not tied to a specific CPU or OS. "Write Once, Run Anywhere" is the slogan for this principle.
High-performanceJIT (Just-In-Time) compilation translates frequently executed code to native machine instructions, achieving both the portability of bytecode and the speed of native code.
MultithreadedThread classes, the synchronized keyword, and other concurrency primitives are built into the language specification, so multithreaded code can be written the same way regardless of platform.

These five principles interlock. Pointer arithmetic is eliminated for memory safety; bytecode is adopted for portability; JIT is introduced to compensate for speed — each design decision cascades into the others.

Java's Genealogy

Java traces its roots to C, C++, and Smalltalk, and has in turn influenced Kotlin, Scala, C#, and the Android JDK, among many others.

C (1972) Syntax origin C++ (1985) OOP design reference Smalltalk Object-orientation Java (1995) Bytecode + JVM Kotlin (2011) Official Android language Scala (2004) Functional + OOP on JVM C# (2002) Designed with Java as reference Java's JVM, bytecode, and GC design influenced many later languages

LanguageRelationship to Java
C / C++The ancestors whose syntax Java adopted. Pointer arithmetic, multiple inheritance, and manual memory management were intentionally excluded from Java.
C#Strongly influenced by Java; Microsoft referenced the intermediate-code + GC + JIT model. C# later moved ahead of Java with async/await and other modern features.
KotlinA JVM language often positioned as a Java successor. It adds null safety, concise syntax, and coroutines; it became the official Android language in 2017.
ScalaIntegrates object-oriented and functional programming on the JVM. Can use Java's library ecosystem directly.
Groovy / ClojureOther JVM languages that compile to Java bytecode and interoperate fully with Java libraries.
Python / RubyLanguages that share Java's automatic GC and object-oriented philosophy but occupy a different niche; Java dominates enterprise-scale systems.

Key Historical Milestones

1991: Green Project begins

Gosling launches the Green Project at Sun Microsystems. Development of Oak — an embedded language targeting consumer electronics — begins. The core design principle of hardware independence via a virtual machine takes shape.

1995: Official release of Java

Java is unveiled at the SunWorld conference. A demo of "applets" — Java programs executable inside a web browser — draws wide attention, and Netscape Navigator announces support for Java applets. The "Write Once, Run Anywhere" concept aligns perfectly with the needs of the Web era, and Java spreads rapidly.

1996: JDK 1.0 commercial release

The first commercial version ships, including applets, AWT (a GUI toolkit), and the base class library.

1998: Java 2 — Moving into the enterprise

JDK 1.2 is released under the "Java 2" brand. The Swing GUI framework and the Collections Framework are added. Enterprise adoption accelerates, and J2EE (Java 2 Enterprise Edition) establishes Java as the standard platform for large-scale web applications.

2004: J2SE 5.0 — Language feature expansion

Generics, the enhanced for loop, autoboxing, annotations, and enums are added. Type-safe collection handling becomes possible, and the language's expressiveness grows significantly.

2006: OpenJDK — Going open source

Sun Microsystems releases the Java source code under the GPL license, giving birth to the OpenJDK project.

2010: Oracle acquires Sun Microsystems

Oracle takes over Sun Microsystems and leads Java development from this point onward. Multiple organizations — Amazon (Corretto), the Eclipse Foundation (Temurin), and Azul Systems among others — begin distributing their own JDK builds alongside OpenJDK.

2014: Java SE 8 — Lambda expressions and the Stream API

The most significant turning point in Java's evolution. Lambda expressions and the Stream API allow functional-style collection processing. The java.time package overhauls date and time handling. Java 8 remains in production in many environments more than a decade later.

2017: Java SE 9 — Switching to a six-month release cycle

The module system (Project Jigsaw) is introduced. Release cadence shifts from multi-year cycles to every six months, with LTS (Long-Term Support) versions designated at intervals of several years.

2023: Java SE 21 (LTS) — Virtual threads

Virtual threads from Project Loom become a stable feature, enabling large numbers of lightweight threads to be created at low cost. Sequenced collections and record patterns are also added.

Comparison with Contemporary Languages

LanguageReleasedMemory managementExecution modelPrimary use cases
C++1985Manual + RAIICompiled directly to machine codeOS, game engines, embedded
Java1995GC (automatic)Bytecode → JITEnterprise systems, Android, web
Python1991GC (reference counting)InterpretedData analysis, AI, scripting
C#2002GC (automatic)IL → JIT / AOTEnterprise systems, games (Unity), web
Kotlin2011GC (automatic)JVM bytecodeAndroid, server-side

Java Today

Enterprise web backends

A mature ecosystem — Spring Boot for web applications, Hibernate for database access, Maven/Gradle for builds — makes Java the default choice for large-scale enterprise backends. Banks, insurance companies, government agencies, and e-commerce platforms around the world run on Java.

Android app development

Java remains an official development language for Android alongside Kotlin. Although Google designated Kotlin as the recommended language for Android in 2019, existing Java codebases continue to be maintained, and Java knowledge is still directly applicable to Android development.

Distributed systems and data infrastructure

Key infrastructure software — Apache Hadoop (large-scale distributed processing), Apache Kafka (distributed event streaming), and Elasticsearch (full-text search and analytics) — is implemented in Java.

Gateway to the JVM ecosystem

The JVM was built for Java, but today it hosts Kotlin, Scala, Groovy, Clojure, and more. Any language that targets JVM bytecode can use Java's vast library ecosystem directly. Learning Java is also an entry point into the entire JVM ecosystem.

Common Misconceptions

"Java is an old language"

Java is not simply "old" — it continues to evolve actively. Lambda expressions and the Stream API in Java 8, records in Java 14, sealed classes in Java 17, and virtual threads in Java 21 show that modern language features are being incorporated continuously. The six-month release cycle allows Java to adopt well-proven ideas from other languages in a measured, backward-compatible way.

"Java and JavaScript are related"

Java and JavaScript are entirely separate languages. JavaScript carries Java's name for marketing reasons: in the mid-1990s, Netscape named Brendan Eich's new language "JavaScript" to capitalize on Java's momentum. There is no technical relationship between them.

"Kotlin exists, so Java is unnecessary"

Kotlin shares the JVM with Java, so the two interoperate fully. Understanding existing large Java codebases — enterprise systems, Android apps — still requires Java knowledge. Java and Kotlin are not competitors; they coexist within the same JVM ecosystem.

Related Terms

If you find any errors or copyright issues, please .