Katana VentraIP

Java (programming language)

Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers write once, run anywhere (WORA),[16] meaning that compiled Java code can run on all platforms that support Java without the need to recompile.[17] Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture. The syntax of Java is similar to C and C++, but has fewer low-level facilities than either of them. The Java runtime provides dynamic capabilities (such as reflection and runtime code modification) that are typically not available in traditional compiled languages.

Not to be confused with Java (software platform), JavaScript, Java, or Javanese language.

Java gained popularity shortly after its release, and has been a very popular programming language since then.[18] Java was the third most popular programming language in 2022 according to GitHub.[19] Although still widely popular, there has been a gradual decline in use of Java in recent years with other languages using JVM gaining popularity.[20]


Java was originally developed by James Gosling at Sun Microsystems. It was released in May 1995 as a core component of Sun's Java platform. The original and reference implementation Java compilers, virtual machines, and class libraries were originally released by Sun under proprietary licenses. As of May 2007, in compliance with the specifications of the Java Community Process, Sun had relicensed most of its Java technologies under the GPL-2.0-only license. Oracle offers its own HotSpot Java Virtual Machine, however the official reference implementation is the OpenJDK JVM which is free open-source software and used by most developers and is the default JVM for almost all Linux distributions.


As of March 2024, Java 22 is the latest version. Java 8, 11, 17, and 21 are previous LTS versions still officially supported.

for smart-cards.[44]

Java Card

(Java ME) – targeting environments with limited resources.[45]

Java Platform, Micro Edition

(Java SE) – targeting workstation environments.[46]

Java Platform, Standard Edition

(Java EE) – targeting large distributed enterprise or Internet environments.[47]

Java Platform, Enterprise Edition

Sun has defined and supports four editions of Java targeting different application environments and segmented many of its APIs so that they belong to one of the platforms. The platforms are:


The classes in the Java APIs are organized into separate groups called packages. Each package contains a set of related interfaces, classes, subpackages and exceptions.


Sun also provided an edition called Personal Java that has been superseded by later, standards-based Java ME configuration-profile pairings.

the (JAX-RS 2.0) useful for AJAX, JSON and REST services, and

Java API for RESTful Web Services

the (JAX-WS) useful for SOAP Web Services.

Java API for XML Web Services

[73]

Java Database Connectivity

User interface

native

A platform dependent implementation of the Java virtual machine that is the means by which the bytecodes of the Java libraries and third-party applications are executed

Plugins, which enable to be run in web browsers

applets

which allows Java applications to be efficiently distributed to end users across the Internet

Java Web Start

Licensing and documentation

The Java Class Library is the standard library, developed to support application development in Java. It is controlled by Oracle in cooperation with others through the Java Community Process program.[71] Companies or individuals participating in this process can influence the design and development of the APIs. This process has been a subject of controversy during the 2010s.[72] The class library contains features such as:

C#

C++

used in old Android versions, replaced by non-JIT Android Runtime

Dalvik

Java Heterogeneous Distributed Computing

List of Java APIs

List of Java frameworks

List of JVM languages

List of Java virtual machines

Comparison of C# and Java

Comparison of Java and C++

Comparison of programming languages

The dictionary definition of Java at Wiktionary

Media related to Java (programming language) at Wikimedia Commons

Java Programming at Wikibooks

Learning materials related to Java at Wikiversity

Java Weekly