Other meanings of Java
Programming language
Java is a general-purpose, class-based programming language and computing platform designed around portability, security, and automatic memory management. First released by Sun Microsystems in 1995, it compiles source code into bytecode executed by the Java Virtual Machine (JVM), allowing the same program to run across many operating systems with limited modification.1
Java emerged from Sun Microsystems’s Green project, whose early work focused on software for consumer electronics before shifting toward the emerging World Wide Web. James Gosling and colleagues designed the language, initially called Oak, with a syntax familiar to C and C++ but with stronger emphasis on portability and safety. Sun released Java publicly in 1995, promoting the idea that compiled code could run on different machines through a virtual machine rather than being rebuilt for each processor.1
Java is statically typed, object-oriented, and class-based, although it also supports procedural styles and functional features. Its standard features include exceptions, interfaces, packages, generics, annotations, concurrency utilities, and automatic garbage collection. Unlike C and C++, ordinary Java programs do not directly manage allocated memory or perform pointer arithmetic, reducing several classes of memory and resource errors.
The Java platform separates program development from execution hardware. The Java compiler, commonly invoked as javac, translates source files into class files containing bytecode; the JVM loads, verifies, and executes that bytecode. Implementations may interpret bytecode, compile frequently used code just in time, or combine both methods. The Java Language Specification defines the language, while the Java Virtual Machine Specification defines the execution model.2
The platform is commonly described through the Java Development Kit (JDK), Java Runtime Environment concepts, and the JVM. Modern JDK distributions include development tools, libraries, and a runtime. The Java API supplies collections, input and output, networking, cryptography, reflection, date and time facilities, and concurrency abstractions. The module system introduced in Java 9 allows applications and libraries to declare narrower dependencies, which can reduce deployment size and improve encapsulation.3
Java is widely used for enterprise services, web back ends, financial systems, scientific software, build tools, and large-scale data processing. Its long-term compatibility policies, extensive libraries, and mature observability and concurrency tooling have made it common in organizations that maintain applications for many years. Frameworks such as Spring and Jakarta EE build application infrastructure above the language and standard platform, while tools such as Maven and Gradle automate dependency management and builds.
Java also became central to Android application development, although Android uses its own runtime and APIs rather than a standard desktop or server JVM. Android applications have historically been written in Java alongside Kotlin, with source transformed into Android-specific executable formats. Java remains distinct from JavaScript: the names reflect early marketing history, but the languages, runtimes, and standard libraries are separate technologies.
Java’s portability is conditional rather than absolute. Programs can depend on operating-system behavior, native libraries, file encodings, time-zone data, or differences among JVM implementations, so the “write once, run anywhere” slogan describes a design goal rather than a guarantee. Java’s security model also evolved over time: the browser applet model and its sandbox were important early features, but browser plug-ins and Java applets were later removed from mainstream deployments as web security practices changed.
Modern Java has expanded beyond its original object-oriented profile. Lambda expressions and the Stream API support functional-style data processing; records provide compact declarations for data-carrying classes; sealed classes constrain inheritance; and virtual threads, standardized in Java 21, support large numbers of lightweight concurrent tasks.4 Governance is also distributed: Oracle leads the principal OpenJDK development process, while other vendors provide compatible JDK builds and commercial support. The Java Community Process has historically allowed proposed platform and library changes to be reviewed through formal Java Specification Requests.5
Java is a trademark of Oracle Corporation. The language, platform specifications, and compatible implementations are discussed here as computing technologies, not as geographic or cultural meanings of “Java.”
Help improve the encyclopedia. Reports go straight to the site manager.