How it works
Java code compiles to bytecode that runs on the Java Virtual Machine (JVM), so the same program runs on Windows, macOS, Linux and servers alike: the original 'write once, run anywhere' promise. It is statically typed and object-oriented, with automatic memory management (garbage collection). Sun Microsystems released it in 1995; Oracle owns it now, and development happens in the open-source OpenJDK project.
It is a workhorse of enterprise software: banks, insurers, retailers and governments run huge Java systems, often on Spring Boot, and data tools such as Kafka, Hadoop and Elasticsearch are built on the JVM. Android apps were written in Java for their first decade, and Android still runs Java libraries, although Kotlin is now Google's recommended language.
Java was long criticised as verbose, and modern releases have steadily trimmed that with records, pattern matching, text blocks, the var keyword and lightweight virtual threads for handling many requests at once. A long-term support (LTS) release arrives every two years.
Java pros and cons
Pros
- Mature, stable and backwards compatible over decades
- Fast JVM with advanced garbage collectors and profiling tools
- Huge ecosystem (Spring, Maven Central) and a large hiring pool
- Runs on any system with a JVM, from laptops to large servers
Cons
- More boilerplate than Kotlin, Python or Go
- Slower start-up and higher memory use than native binaries
- Oracle's changing licence terms have confused many teams
When to use Java
Pick it when
- Large backends and enterprise systems with long lifespans
- Companies that already run Java and Spring
- Data and streaming tools from the JVM world
Skip it when
- New Android apps, where Kotlin is the default
- Small serverless functions where fast start-up matters
Java pricing
Open source
Free: OpenJDK builds such as Eclipse Temurin and Amazon Corretto cost nothing. Oracle's own JDK has its own licence terms, worth checking for commercial use.
Approximate, checked September 2026.What the other tools cost
Java vs the alternatives
Related terms
More in Programming languages
General purpose