Java (programming language)
Introduction
Java is a high-level, class-based, object-oriented programming language designed to have as few implementation dependencies as possible. It was originally developed by Sun Microsystems (now owned by Oracle Corporation) and released in 1995. Java was created by James Gosling and his team, with the language drawing its syntax from C and C++ but featuring a simpler object model and fewer low-level facilities. Java applications are typically compiled to bytecode that can run on any Java Virtual Machine (JVM) regardless of the underlying computer architecture, following the principle of "write once, run anywhere" (WORA).
History
The project that became Java began in 1991 as the Oak language, intended for use in embedded systems and set-top boxes. It was later renamed Java after the Java coffee from Indonesia. The first public implementation, Java 1.0, was released in 1996 and promised platform independence. Major milestones include the introduction of the Java Platform, Standard Edition 5 (2004) with generic types and annotations, Java 8 (2014) which brought lambda expressions and the Stream API, and the switch to a six-month release cadence starting with Java 9 (2017). Long-Term Support (LTS) releases, such as Java 11 (2018) and Java 17 (2021), are maintained for several years. Oracle Corporation acquired Sun Microsystems in 2010, assuming stewardship of the language and its ecosystem.
Features
Java is statically typed and primarily object-oriented, with support for classes, interfaces, inheritance, and polymorphism. Its key features include:
- Platform independence: Java code is compiled to platform-neutral bytecode executed by the JVM, which is available for Windows, macOS, Linux, and many other systems.
- Automatic memory management: The JVM includes a garbage collector that automatically reclaims memory from objects no longer in use.
- Rich standard library: The Java Class Library provides frameworks for networking, file I/O, graphical user interfaces (Swing, JavaFX), and data structures.
- Multithreading: Built-in support for concurrent programming via the Thread class and the java.util.concurrent package.
- Security: The platform includes a security manager, class file verification, and sandboxing for applets (historically).
- Checked exceptions: The language enforces handling of recoverable errors through a dedicated exception hierarchy.
Later versions have added functional programming constructs (lambda expressions in Java 8), modularity (Project Jigsaw in Java 9), and pattern matching (preview features since Java 14).
Use cases
Java remains one of the most widely used programming languages in industry. It is the foundation for many enterprise applications through frameworks like Spring and Jakarta EE. Android app development historically relied on Java (alongside Kotlin). Java is also prevalent in big data technologies (Apache Hadoop, Apache Spark), scientific computing, and server-side web applications. The language's stability and extensive tooling make it a common choice for large-scale, long-lived systems.
Influence
Java has influenced numerous newer languages, including C#, Scala, Kotlin, and Groovy. Its virtual machine concept and garbage-collected runtime have been adopted by other platforms, and the JVM itself now hosts many alternative languages.