Java Language and Virtual Machine Specifications

Java SE 23

Released September 2024 as JSR 398

documentation iconThe Java Language Specification, Java SE 23 Edition

HTML | PDF

Preview feature: Flexible Constructor Bodies

Preview feature: Implicitly Declared Classes and Instance main Methods

Preview feature: Module Import Declarations

Preview feature: Primitive Types in Patterns, instanceof, and switch

documentation iconThe Java Virtual Machine Specification, Java SE 23 Edition

HTML | PDF

Preview feature: Implicitly Declared Classes and Instance main Methods

Java SE 22

Released March 2024 as JSR 397

documentation iconThe Java Language Specification, Java SE 22 Edition

HTML | PDF

Preview feature: Implicitly Declared Classes and Instance main Methods

Preview feature: Statements Before super(...)

Preview feature: String Templates

documentation iconThe Java Virtual Machine Specification, Java SE 22 Edition

HTML | PDF

Preview feature: Implicitly Declared Classes and Instance main Methods

Java SE 21

Released September 2023 as JSR 396

documentation iconThe Java Language Specification, Java SE 21 Edition

HTML | PDF

Preview feature: String Templates

Preview feature: Unnamed Classes and Instance main Methods

Preview feature: Unnamed Patterns and Variables

documentation iconThe Java Virtual Machine Specification, Java SE 21 Edition

HTML | PDF

Preview feature: Unnamed Classes and Instance main Methods

Java SE 20

Released March 2023 as JSR 395

documentation iconThe Java Language Specification, Java SE 20 Edition

HTML | PDF

Preview feature: Pattern Matching for switch

Preview feature: Record Patterns

documentation iconThe Java Virtual Machine Specification, Java SE 20 Edition

HTML | PDF

Java SE 19

Released September 2022 as JSR 394

documentation iconThe Java Language Specification, Java SE 19 Edition

HTML | PDF

Preview feature: Pattern Matching for switch

Preview feature: Record Patterns

documentation iconThe Java Virtual Machine Specification, Java SE 19 Edition

HTML | PDF

Java SE 18

Released March 2022 as JSR 393

documentation iconThe Java Language Specification, Java SE 18 Edition

HTML | PDF

Preview feature: Pattern Matching for switch

documentation iconThe Java Virtual Machine Specification, Java SE 18 Edition

HTML | PDF

Java SE 17

Released September 2021 as JSR 392

documentation iconThe Java Language Specification, Java SE 17 Edition

HTML | PDF

Preview feature: Pattern Matching for switch

documentation iconThe Java Virtual Machine Specification, Java SE 17 Edition

HTML | PDF

Java SE 16

Released March 2021 as JSR 391

documentation iconThe Java Language Specification, Java SE 16 Edition

HTML | PDF

Preview feature: Sealed Classes

documentation iconThe Java Virtual Machine Specification, Java SE 16 Edition

HTML | PDF

Preview feature: Sealed Classes

Java SE 15

Released September 2020 as JSR 390

documentation iconThe Java Language Specification, Java SE 15 Edition

HTML | PDF

Preview features: Pattern matching for instanceof, Records, Sealed Classes

documentation iconThe Java Virtual Machine Specification, Java SE 15 Edition

HTML | PDF

Preview features: Records, Sealed Classes

Java SE 14

Released March 2020 as JSR 389

documentation iconThe Java Language Specification, Java SE 14 Edition

HTML | PDF

Preview features: Pattern matching for instanceof, Records, Text Blocks

documentation iconThe Java Virtual Machine Specification, Java SE 14 Edition

HTML | PDF

Preview feature: Records

Java SE 13

Released September 2019 as JSR 388

documentation iconThe Java Language Specification, Java SE 13 Edition

HTML | PDF

Preview features: Switch Expressions and Text Blocks

documentation iconThe Java Virtual Machine Specification, Java SE 13 Edition

HTML | PDF

Java SE 12

Released March 2019 as JSR 386

documentation iconThe Java Language Specification, Java SE 12 Edition

HTML | PDF

Preview feature: Switch Expressions

documentation iconThe Java Virtual Machine Specification, Java SE 12 Edition

HTML | PDF

Java SE 11

Released September 2018 as JSR 384

documentation iconThe Java Language Specification, Java SE 11 Edition

HTML | PDF

documentation iconThe Java Virtual Machine Specification, Java SE 11 Edition

HTML | PDF

Java SE 10

Released March 2018 as JSR 383

documentation iconThe Java Language Specification, Java SE 10 Edition

HTML | PDF

documentation iconThe Java Virtual Machine Specification, Java SE 10 Edition

HTML | PDF

Java SE 9

Released September 2017 as JSR 379

documentation iconThe Java Language Specification, Java SE 9 Edition

HTML | PDF

documentation iconThe Java Virtual Machine Specification, Java SE 9 Edition

HTML | PDF

Java SE 8

Released March 2014 as JSR 337

documentation iconThe Java Language Specification, Java SE 8 Edition

HTML | PDF

documentation iconThe Java Virtual Machine Specification, Java SE 8 Edition

HTML | PDF

Java SE 7

Released July 2011 as JSR 336

documentation iconThe Java Language Specification, Java SE 7 Edition

HTML | PDF

documentation iconThe Java Virtual Machine Specification, Java SE 7 Edition

HTML | PDF | Update (March 2015)

Java SE 6

Released December 2006 as JSR 270

documentation iconThe Java Language Specification, Third Edition

HTML | PDF

documentation iconThe Java Virtual Machine Specification, Second Edition

HTML | Update (SE 5.0) | Update (SE 6) | Update (March 2015)