Other meanings of Java
PROGRAMMING LANGUAGE
Java is a general-purpose programming language and computing platform designed for portability, reliability, and large-scale software development. Programs are compiled into platform-independent bytecode that runs on a Java Virtual Machine (JVM), allowing the same application to operate across many operating systems with limited changes.
Java originated at Sun Microsystems in the early 1990s as part of the Green Project, led by James Gosling, and was publicly released in 1995. Its initial design targeted consumer electronics, but the language gained wider attention through browser-based applets and the emerging World Wide Web. Java borrowed syntax familiar from C and C++ while removing or restricting features such as explicit pointer arithmetic and manual memory deallocation. The result was a class-based, object-oriented language intended to make software easier to move between machines and safer to maintain.
The phrase “write once, run anywhere” describes Java’s central portability goal rather than an absolute guarantee. A compiler translates source code into bytecode, and a compatible Java Virtual Machine interprets or compiles that bytecode for a particular processor and operating system.1
Java is both a language and a layered platform consisting of libraries, development tools, and the Java Virtual Machine. The JVM specification defines an abstract machine with class loading, bytecode verification, execution, threads, and memory areas; individual implementations may use interpretation, just-in-time compilation, or both.1 The Java Language Specification defines the language’s syntax, types, expressions, classes, interfaces, and rules for compilation.2
Automatic memory management is provided by garbage collection, which identifies objects no longer reachable by a program and reclaims their storage. Java also supplies extensive standard libraries for collections, input and output, networking, concurrency, security, text processing, and database connectivity. These libraries, rather than syntax alone, have made Java suitable for enterprise servers, scientific tools, desktop programs, and embedded systems.
Java became a major language for server-side and enterprise software because its portability, networking libraries, static type checking, and mature tooling supported long-lived applications. Frameworks such as the Spring Framework built large ecosystems around Java web services, dependency management, and database-backed applications. Java is also used in financial systems, build tools, distributed data platforms, scientific software, and educational programming.
Java should not be confused with JavaScript, a separate language that developed independently despite the similar name. Java was also important in early versions of Android, where applications commonly used Java alongside Android-specific APIs; Kotlin is now an officially supported alternative and is widely used in new Android development. The language’s broad library and tooling ecosystem remains supported by multiple vendors and open-source projects.
Java’s portability depends on a defined runtime contract, not on identical behavior from every implementation. The Java Community Process has historically organized standardized Java specifications, while the OpenJDK project provides the principal open-source implementation and development base for Java SE.3 Vendors can distribute compatible builds with different support periods, performance features, security patches, and licensing terms.
Several less visible design choices shaped Java’s character. Checked exceptions made some failure conditions part of a method’s declared interface, while interfaces allowed a form of multiple behavioral contracts without multiple class inheritance. Later releases added generics, annotations, lambda expressions, modules, records, and pattern-oriented features while preserving substantial backward compatibility. Java’s memory model also gives formal rules for visibility and ordering between threads, a detail that matters greatly in concurrent software but is rarely visible in beginner examples.2
Java implementations and release policies change over time; the language and platform specifications define compatibility more precisely than any single vendor distribution.
Help improve the encyclopedia. Reports go straight to the site manager.