Coding Conventions
- Java Code Style Guidelines - cornell
- Java Code Conventions - sun
- Java Style Guide - google
- Secure Coding Guidelines - oracle
- Checkstyle (v9.3 is last jre 8 compatible)
- Command Line v9.3 - documentation
- GitHub v9.3 - jar release
- Maven v9.3 - jar release
Tutorials
- Java Programming - wikibooks
- Official Tutorial - oracle (history)
- Java Tutorials - jakob jenkov
Guides
- Annotations
- Collections
- Debugger - jdb
- Java 2D
- jshell - [user guide] [man page] [module summary]
- javadoc - [how to write] [technotes] [wikipedia]
- javac - [hacker’s guide]
Build Tools
- javac - online man page
javac -source 1.4 -target 1.4 -Xlint:-options -bootclasspath j2sdk1.4.2_19\lib\classes.zip -extdirs "" *.java
- Eclipse Compiler for Java (ECJ) - coder lounge
- Using the batch compiler - eclipse docs
- Eclipse JDT Core - github
- Apache Ant - online docs
- Java Archive (JAR) Files - oracle
- javapackager - oracle
javapackager -createjar -appclass package.ClassName -srcdir classes -outdir out -outfile outjar -v
Testing
- Programming With Assertions - oracle
- javap
javap -verbose ClassName # Get class file version
- ArchUnit
- JUnit 5
- JUnit 4
- maven repo
- junit-4.13.2 - last in 4.x series
- TestNG
- maven repo
- testng-7.5.1 - last jdk8 compatible
JVM
-
JVMs
- GraalVM - openjdk
- Java VM Architecture Explained - freecodecamp
- Java VM Guide - oracle
- Java SE VM Specifications - oracle
- OpenJ9 - eclipse
-
Benchmark Suite
-
Monitor
Database
-
Apache Derby - full-featured, open source relational database management system (RDBMS) that is based on Java technology and SQL.
Derby is written and implemented completely in the Java programming language. Derby provides users with a small-footprint standards-based database engine that can be tightly embedded into any Java based solution. Derby ensures data integrity and provides sophisticated transaction support. In the default configuration there is no separate database server to be installed or maintained by the end user.
The on-disk database format used by Derby is portable and platform-independent. You can move Derby databases from machine to machine without needing to modify the data. A Derby application can include a pre-built, populated database if it needs to, and that database will work in any Derby configuration.
Web
- Jetty - full-featured, standards based, open source web server and servlet container, providing support for HTTP/2, WebSocket, OSGi, JMX, JNDI, JAAS and other integrations. It's asynchronous, embeddable, extensible, and has a small footprint.
GUI
Supplementary Characters in the Java Platform
JDK 1.0
- Class File Version: 45
- Api Documentation
- The Java Language Specification 1.0 - 1996
JDK 1.1
- Class File Version: 45.3
- API Documentation [.hlp]
- The Java Language Specification 1.0 - 1996
JDK 1.2
- Class File Version: 46
- The Java Language Specification 1.0 - 1996
JDK 1.3
- Class File Version: 47
- Minimum Target Version: 1.1
- The Java Language Specification 2.0 - 2000
JDK 1.4
- Class File Version: 48
- Minimum Source Version: 1.2
- Minimum Target Version: 1.1
- The Java Language Specification 2.0 - 2000
JDK 5
- Class File Version: 49
- Minimum Source Version: 1.2
- Minimum Target Version: 1.1
- API Documentation (.chm)
- Java 1.5 grammar (ANTLR v3)
- Java Language Specification 3 - 2005
JDK 6
- Class File Version: 50
- API Documentation (.chm)
- Java Language Specification 3 - 2005
- Features
JDK 7 (LTS - 07/2022)
- Class File Version: 51
- Minimum Source Version: 1.2
- Minimum Target Version: 1.1
- API Documentation (.chm: tutorial; api docs)
- Developer Guides
- Features
- Language Spec - 2013
JDK 8 (LTS - 12/2030)
- Class File Version: 52
- Minimum Source Version: 1.2
- Minimum Target Version: 1.1
- Documentation Home
- API Documenation (.chm)
- Features / What's New
- date-time api (threeten supplemental guide) (java mag article) (jsr 310 guide)
- javadoc doclint
- javadoc in
javax.tools
- javafx 8
- jdbc 4.2
- lambda expressions (java tutorial) (quick start) (part 1) (part2) (oreilly 1) (oreilly 2) (lambda state)
- method references (java tutorial)
- swing enhancements
- unicode 6.2
- Language Spec - 2015
- Developer Guides
- JDK Tools and Utilities
- Tutorial
- Download
JDK 9
- Class File Version: 53
- Features
- ahead-of-time compilation (using graal backend)
- compile for old platform versions
- convenience factory methods for collections
- disable sha-1 certificates
- gtk 3 on linux
- hidpi graphics on windows and linux
- javadoc search
- javapackager (modular app packaging)
- jlink
- jshell (tutorial)
- milling project coin
- module system
- modular jdk
- multi-release jar files
- platform specific desktop features
- sha-3 hash algorithms
- tiff image i/o
- unicode 8.0
JDK 10
- Class File Version: 54
- Features
JDK 11 (LTS - 09/2026 01/2032)
- Class File Version: 55
- Minimum Source Version: 6
- Minimum Target Version: 1.6
- API Documentation
- Features
- Language Spec - 2018
JDK 12
- Class File Version: 56
JDK 13
- Class File Version: 57
JDK 14
- Class File Version: 58
- Features
JDK 15
- Class File Version: 59
- Features
JDK 16
- Class File Version: 60
- Features
JDK 17 (LTS >= 09/2029)
- Class File Version: 61
- Minimum Source Version: 7
- Minimum Target Version: 7
- API Documentation
- Features (release notes)
- Language Spec - 2021
- Download
JDK 18
- Class File Version: 62
- Features
JDK 19
- Class File Version: 63
- Features
JDK 20
- Class File Version: 64
JDK 21 (LTS - 09/2031)
- Class File Version: 65
- Minimum Source Version: 8
- Minimum Target Version: 8
- Features (release notes)
- Language Spec - 2023
- JDK Tools
- Download
JDK 22
- Class File Version: 66
- Features
JDK 23
- Class File Version: 67
- Features