Java (software platform)

Java (software platform)
Original author(s)James Gosling, Sun Microsystems
Developer(s)Oracle Corporation
Initial releaseJanuary 23, 1996; 28 years ago (1996-01-23)[1][2]
Stable release23.0.1 (October 15, 2024; 37 days ago (2024-10-15)[3]) [±]

21.0.5 LTS (October 15, 2024; 37 days ago (2024-10-15)[4]) [±]
17.0.13 LTS (October 15, 2024; 37 days ago (2024-10-15)[5]) [±]
11.0.25 LTS (October 15, 2024; 37 days ago (2024-10-15)[6]) [±]

8u431 LTS (October 15, 2024; 37 days ago (2024-10-15)[7]) [±]
Written inJava, C++, C, assembly language[8]
Operating systemMicrosoft Windows, Linux, macOS,[9] and for old versions: Solaris
Platformx64, ARMv8, and for old versions: ARMv7, IA-32, SPARC (up to Java 14) (Java 8 includes 32-bit support for Windows – while no longer supported freely by Oracle for commercial use)[9]
Available inEnglish, Chinese, French, German, Italian, Japanese, Korean, Portuguese, Spanish, Swedish[10]
TypeSoftware platform
LicenseDual-license: GNU General Public License version 2 with classpath exception,[11] and a proprietary license.[12]
Website
TuxGuitar, a Java-powered program

Java is a set of computer software and specifications that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones to enterprise servers and supercomputers. Java applets, which are less common than standalone Java applications, were commonly run in secure, sandboxed environments to provide many features of native applications through being embedded in HTML pages.

Writing in the Java programming language is the primary way to produce code that will be deployed as byte code in a Java virtual machine (JVM); byte code compilers are also available for other languages, including Ada, JavaScript, Kotlin (Google's preferred Android language), Python, and Ruby. In addition, several languages have been designed to run natively on the JVM, including Clojure, Groovy, and Scala. Java syntax borrows heavily from C and C++, but object-oriented features are modeled after Smalltalk and Objective-C.[13] Java eschews certain low-level constructs such as pointers and has a very simple memory model where objects are allocated on the heap (while some implementations e.g. all currently supported by Oracle, may use escape analysis optimization to allocate on the stack instead) and all variables of object types are references. Memory management is handled through integrated automatic garbage collection performed by the JVM.

  1. ^ "JavaSoft ships Java 1.0" (Press release). Archived from the original on February 5, 2008. Retrieved February 9, 2016.
  2. ^ Ortiz, C. Enrique; Giguère, Éric (2001). Mobile Information Device Profile for Java 2 Micro Edition: Developer's Guide (PDF). John Wiley & Sons. ISBN 978-0471034650. Retrieved May 30, 2012.
  3. ^ "Java™ SE Development Kit 23, 23.0.1 Release Notes". Oracle Corporation. Retrieved October 16, 2024.
  4. ^ "Java™ SE Development Kit 21, 21.0.5 Release Notes". Oracle Corporation. Retrieved October 16, 2024.
  5. ^ "Java™ SE Development Kit 17, 17.0.13 Release Notes". Oracle Corporation. Retrieved October 16, 2024.
  6. ^ "Java™ SE Development Kit 11, 11.0.25 Release Notes". Oracle Corporation. Retrieved October 16, 2024.
  7. ^ "Java™ SE Development Kit 8, Update 431 Release Notes". Oracle Corporation. Retrieved October 16, 2024.
  8. ^ "HotSpot Group". Openjdk.java.net. Retrieved February 9, 2016.
  9. ^ a b "Oracle JDK 8 and JRE 8 Certified System Configurations Contents". Oracle.com. April 8, 2014. Retrieved February 9, 2016.
  10. ^ "Java SE 7 Supported Locales". Oracle.com. Retrieved February 9, 2016.
  11. ^ "OpenJDK: GPLv2 + Classpath Exception". Openjdk.java.net. April 1, 1989. Retrieved February 9, 2016.
  12. ^ "BCL For Java SE". Oracle.com. April 2, 2013. Retrieved February 9, 2016.
  13. ^ Naughton, Patrick. "Java Was Strongly Influenced by Objective-C". Virtual School. Archived from the original on August 13, 2012.