Content deleted Content added
Update |
→Java SE 25 (LTS): add JEPs and add to infobox, add release date |
||
(6 intermediate revisions by 4 users not shown) | |||
Line 2:
{{About|the Java programming language||History of Java (disambiguation){{!}}History of Java}}
The [[Java (programming language)|Java language]] has undergone several changes since [[Java Development Kit|JDK]] 1.0 as well as numerous additions of [[class (computer science)|classes]] and packages to the standard [[library (computer science)|library]]. Since J2SE 1.4, the evolution of the Java language has been governed by the [[Java Community Process]] (JCP), which uses ''Java Specification Requests'' (JSRs) to propose and specify additions and changes to the [[Java (software platform)|Java platform]]. The language is specified by the ''Java Language Specification'' (JLS); changes to the JLS are managed under [http://www.jcp.org/en/jsr/detail?id=901 JSR 901]. In September 2017, Mark Reinhold, chief
In addition to the language changes, other changes have been made to the [[Java Class Library]] over the years, which has grown from a few hundred classes in JDK 1.0 to over three thousand in J2SE 5. Entire new [[API]]s, such as [[Swing (Java)|Swing]] and [[Java2D]], have been introduced, and many of the original JDK 1.0 classes and methods have been [[deprecation|deprecated]], and very few APIs have been removed (at least one, for threading, in Java 22<ref name="removed_API_in Java_22"/>). Some programs allow the conversion of Java programs from one version of the [[Java (software platform)|Java platform]] to an older one (for example Java 5.0 backported to 1.4) (see [[Java backporting tools]]).
Line 23:
The first version was released on January 23, 1996.<ref name="pr10">{{cite press release|url=http://www.sun.com/smi/Press/sunflash/1996-01/sunflash.960123.10561.xml |title=JavaSoft ships Java 1.0 |access-date=2008-02-05 |url-status=dead |archive-url=https://web.archive.org/web/20070310235103/http://www.sun.com/smi/Press/sunflash/1996-01/sunflash.960123.10561.xml |archive-date=March 10, 2007}}</ref><ref name=JavaHistory>{{cite book |last1=Ortiz |first1=C. Enrique |last2=Giguère |first2=Éric |title=Mobile Information Device Profile for Java 2 Micro Edition: Developer's Guide |year=2001 |publisher=[[John Wiley & Sons]] |isbn=978-0-471-03465-0 |url=https://archive.org/details/mobileinformatio0000orti |access-date=May 30, 2012 |url-access=registration }}</ref> The first stable version, JDK 1.0.2, is called Java 1.<ref name=JavaHistory/>
{{-}}
It included:
* core language features (basic java types in java.lang, and utility classes in java.util)
* support for graphics ([[Abstract_Window_Toolkit|AWT]] framework)
* support for creating a [[Java applet]]
* libraries for [[Input/output|I/O]] and [[Computer_network|networking]]
== JDK 1.1 ==
Line 33 ⟶ 40:
* [[inner class]]es added to the language
* [[JavaBeans]]
* [[Java Database Connectivity]] (JDBC) and support for [[sql]]
* [[Java remote method invocation]] (RMI) and [[serialization]]
* [[Reflective programming|reflection]] which supported Introspection only, no modification at runtime was possible. (The ability to modify objects reflectively was added in J2SE 1.2, by introducing the {{Javadoc|module=java.base|package=java.lang.reflect|class=AccessibleObject|text=AccessibleObject}} class and its subclasses such as the {{Javadoc|module=java.base|package=java.lang.reflect|class=Field|text=Field}} class.)
Line 136 ⟶ 143:
=== Versioning change ===
This version introduced a new versioning system for the Java language, although the old versioning system continued to be used for developer libraries:
{{
This correspondence continued through later releases (Java 6 = JDK 1.6, Java 7 = JDK 1.7, and so on).
Line 579 ⟶ 586:
|jeps = 8
}}
Java 8 was released on
Work on features was organized in terms of [[JDK Enhancement Proposal]]s (JEPs).<ref>{{cite web |url=https://jcp.org/en/jsr/detail?id=337 |title=JSR 337|access-date=2014-01-30}}</ref>
Line 873 ⟶ 880:
|Java SE 8 Update 451<ref>{{Cite web |title=Java SE Development Kit 8, Update 451 Release Notes |url=https://www.oracle.com/java/technologies/javase/8u451-relnotes.html |website=oracle.com}}</ref>
|2025-04-15
|
|-
|Java SE 8 Update 461<ref>{{Cite web |title=Java SE Development Kit 8, Update 461 Release Notes |url=https://www.oracle.com/java/technologies/javase/8u461-relnotes.html |website=oracle.com}}</ref>
|2025-07-15
|
|-
Line 1,737 ⟶ 1,748:
* {{Java JEP|376|ZGC: Concurrent Thread-Stack Processing}}
* {{Java JEP|380|Unix-Domain Socket Channels}}
* {{Java JEP|386|Alpine Linux Port}}
* {{Java JEP|387|Elastic Metaspace}}
* {{Java JEP|388|Windows/AArch64 Port}}
Line 2,441 ⟶ 2,452:
| version name = Java SE 25
| lts = yes
| released = {{Start date and age|2025|9|16|df=y|br=yes|paren=yes}}
| jeps =
| features = {{Ubl|
* Module Import Declarations
* Flexible Constructor Bodies
}}
| removed = {{Ubl|
* 32-bit x86 Port
}}
| previews = {{Ubl |
* Primitive Types in Patterns, instanceof, and switch
* PEM Encodings of Cryptographic Objects
}}
| unreleased = yes
}}
# {{Java JEP|470|PEM Encodings of Cryptographic Objects (Preview)}}
# {{Java JEP|502|Stable Values (Preview)}}
# {{Java JEP|503|Remove the 32-bit x86 Port}}
# {{Java JEP|505|Structured Concurrency (Fifth Preview)}}
# {{Java JEP|506|Scoped Values}}
# {{Java JEP|507|Primitive Types in Patterns, instanceof, and switch (Third Preview)}}
# {{Java JEP|508|Vector API (Tenth Incubator)}}
# {{Java JEP|509|JFR CPU-Time Profiling (Experimental)}}
# {{Java JEP|510|Key Derivation Function API}}
# {{Java JEP|511|Module Import Declarations}}
# {{Java JEP|512|Compact Source Files and Instance Main Methods}}
# {{Java JEP|513|Flexible Constructor Bodies}}
# {{Java JEP|514|Ahead-of-Time Command-Line Ergonomics}}
# {{Java JEP|515|Ahead-of-Time Method Profiling}}
# {{Java JEP|518|JFR Cooperative Sampling}}
# {{Java JEP|519|Compact Object Headers}}
# {{Java JEP|520|JFR Method Timing & Tracing}}
# {{Java JEP|521|Generational Shenandoah}}
{{Clear}}
Line 2,474 ⟶ 2,515:
Both [[Jikes]] and [[Jikes RVM]] are open-source research projects that IBM developed.
Several other implementations exist that started as proprietary software, but are now open source. IBM initially developed [[OpenJ9]] as the proprietary J9,<ref>{{Cite web|url=https://developer.ibm.com/javasdk/downloads/|title=Downloads – Overview|date=July 18, 2016}}</ref> but has since relicensed the project and donated it to the [[Eclipse Foundation]]. [[JRockit]] is a proprietary implementation that was acquired by Oracle and incorporated into subsequent OpenJDK versions.
== References ==
|