← New search

Other meanings of Java (programming language)

Programming Languages

Java (programming language)

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 James Gosling at Sun Microsystems and released in 1995, and it is now widely used for building enterprise-scale applications, Android apps, and large-scale systems. Java's core principle, "write once, run anywhere" (WORA), is achieved through the Java Virtual Machine (JVM), which executes compiled Java bytecode on any platform.

1995
Initial release
Year Java was first released by Sun Microsystems
~9 million
Developers
Estimated number of Java developers worldwide
3 billion
Devices
Number of devices running Java (as reported by Oracle)
TIOBE Index
Top 3
Java consistently ranks among the top three programming languages in the TIOBE Index
1

History and evolution

Java originated from the Green Project at Sun Microsystems in 1991, led by James Gosling, Mike Sheridan, and Patrick Naughton. The team initially designed a language called Oak for consumer electronics, but it was later renamed Java and retargeted for the internet. Java 1.0 was released in 1995, and its promise of platform independence quickly gained traction. Over the years, Java has undergone major revisions: Java 2 (1998) introduced the Collections Framework and Swing; Java 5 (2004) added generics, annotations, and the enhanced for loop; Java 8 (2014) brought lambda expressions and the Stream API; and Java 17 (2021) was a long-term support (LTS) release. Oracle, which acquired Sun in 2010, now releases new versions every six months, with LTS releases every two years.

2

Language features

Java is a statically typed, object-oriented language that emphasizes simplicity and readability. Its syntax is similar to C++, but it omits low-level features like pointers and operator overloading. Key features include automatic memory management through garbage collection, strong type checking, and a rich standard library. Java's object model supports classes, interfaces, inheritance, and polymorphism. The language also includes exception handling, multithreading, and reflection. A distinctive feature is the Java Virtual Machine (JVM), which compiles Java source code into platform-independent bytecode. This bytecode is executed by the JVM, which provides security, memory management, and just-in-time (JIT) compilation for performance. Java's design goals include portability, robustness, and security, making it suitable for networked and distributed environments.1

3

Ecosystem and applications

Java's ecosystem is vast, encompassing frameworks, tools, and libraries that support enterprise development. The Java Enterprise Edition (Java EE, now Jakarta EE) provides APIs for web services, messaging, and persistence. Popular frameworks include Spring, Hibernate, and Apache Struts. Java is the primary language for Android app development, although Kotlin has gained ground. It is also used in big data technologies like Apache Hadoop and Apache Spark, and in financial services for high-frequency trading systems. The language's stability and backward compatibility make it a staple in large organizations. According to Oracle, Java runs on more than 3 billion devices, including computers, smartphones, and embedded systems.2

4

Lesser-known aspects

Beyond its mainstream use, Java has several lesser-known facets. The language was nearly named Oak, but the name was changed to Java after a trademark search. The original implementation was called the Java Development Kit (JDK), and the first public version was JDK 1.0. Java's mascot, Duke, was created in 1992 and is now an open-source project. Java has a built-in scripting engine (Nashorn, removed in JDK 15) and supports dynamic languages via the JVM. The JVM itself is a complex piece of engineering, with features like escape analysis and lock elision. Java's security model includes a sandbox for untrusted code, though it has been the subject of vulnerabilities. The Java Community Process (JCP) governs the language's evolution, allowing individuals and organizations to propose new features. Java also has a niche in scientific computing, with libraries like Apache Commons Math and the Java bindings for the GNU Scientific Library.3

5

Criticism and challenges

Java has faced criticism for its verbosity and slow evolution compared to newer languages. The lack of value types and the overhead of boxing/unboxing have been performance concerns. The JVM's memory footprint can be large, and startup times are slower than native languages. Security issues have arisen, particularly in browser plugins, leading to their deprecation. The licensing changes by Oracle, including the shift to a subscription model for commercial use, have caused community backlash. However, the OpenJDK project provides a free, open-source implementation, and alternative JVMs like GraalVM offer improved performance. Despite these challenges, Java remains a dominant force in enterprise computing, with a large talent pool and extensive documentation.

Glossary

JVM
Java Virtual Machine; the runtime environment that executes Java bytecode.
Bytecode
The compiled form of Java source code that is executed by the JVM.
Garbage collection
Automatic memory management that deallocates objects no longer in use.
LTS
Long-term support; a release that receives updates for an extended period.
WORA
Write once, run anywhere; the principle that Java code runs on any platform with a JVM.

Java is a registered trademark of Oracle and/or its affiliates.