The Java Tutorials are practical guides for programmers who want
to use the Java programming language to create applications. They
include hundreds of complete, working examples, and dozens of
lessons. Groups of related lessons are organized into "trails".
The Java Tutorials primarily describe features in Java SE 7.
For best results, download JDK 7.
The Java Tutorials are continuously updated to keep up with changes to the Java Platform and to incorporate feedback from our readers. Apart from fixing typos and errors, this update includes the following:
This release of the tutorial corresponds to the 7u21 release of the JRE. The 7u21 release enables users to make more informed decisions before running Rich Internet Applications (RIAs) by prompting users for permission before an RIA is run. The prompt contains information about the certificate used to sign the app and the level of access requested by the app. Depending on the security setting in the Java Control Panel, some apps might be blocked from running.
The tutorials were updated to reflect the recommendation that all RIAs be run from signed JAR files. A new page has been added to the Deployment trail on User Acceptance of RIAs. You may also want to refer to the lesson on Signing and Verifying JAR Files. The Deployment ebook (both mobi and epub formats) have been updated. Finally, all Java Web Start examples launched from within the tutorial are now signed and all applets run within the sandbox.
As part of the ongoing Project Lambda work for Java SE 8, there is a new page on Method References that includes a new MethodReferencesTest.java example (which requires the early access release of JDK 8 with Lambda support to compile). This new page is available online only.
Another feature coming to Java SE 8 is the ability to invoke methods that use the fork/join framework to sort arrays in parallel. The Arrays and Fork/Join pages have been updated with information on manipulating arrays. This new material is available online only.
The previous release of the tutorial included the following:
An early access page on Lambda Expressions. As part of this work, the information on Nested Classes, Anonymous Classes, and Local Classes have been updated and a new page on When to Use Nested Classes, Local Classes, Anonymous Classes, and Lambda Expressions has been added. All of this new material is available online only.
The Annotations page has been moved and expanded to be a full Annotations lesson. The new lesson includes information on Java SE 8 features: Type Annotations, which can be used in conjunction with pluggable type systems for improved type checking, and Repeating Annotations. This early access lesson is available online only.
The lesson Service Providers for Internationalization includes the new section Installing a Custom Resource Bundle as an Extension, which shows you how to load resource bundles with service provider interfaces (SPIs). These interfaces enable you to create applications that you can extend, through plug-ins or modules, without modifying their original code base. See the new section Creating Extensible Applications for more information. These new pages are currently available online only.
Trails Covering the Basics
These trails are available in book form as
The Java Tutorial, Fifth Edition. To buy this book, refer to the box to the right.
- Getting Started
— An introduction to Java technology and lessons on
installing Java development software and using it to create a
simple program.
- Learning the Java Language
— Lessons describing the essential concepts and features
of the Java Programming Language.
- Essential Java Classes
— Lessons on exceptions, basic input/output,
concurrency, regular expressions, and the platform
environment.
- Collections —
Lessons on using and extending the Java Collections Framework.
- Deployment —
How to package applications and applets using JAR files, and
deploy them using Java Web Start and Java Plug-in.
- Preparation
for Java Programming Language Certification
— List of available training and tutorial resources.
Creating Graphical User Interfaces
Specialized Trails and Lessons
These trails and lessons are only available as web pages.
- Custom Networking
— An introduction to the Java platform's powerful
networking features.
- The Extension Mechanism
— How to make custom APIs available to all applications
running on the Java platform.
- Full-Screen
Exclusive Mode API — How to write applications
that more fully utilize the user's graphics hardware.
- Generics —
An enhancement to the type system that supports operations on
objects of various types while providing compile-time type
safety. Note that this lesson is for advanced users. The Java Language trail contains a Generics lesson that is
suitable for beginners.
- Internationalization —
An introduction to designing software so that it can be easily
be adapted (localized) to various languages and regions.
- JavaBeans —
The Java platform's component technology.
- JDBC Database Access —
Introduces an API for connectivity between the Java
applications and a wide range of databases and a data sources.
- JMX— Java Management
Extensions provides a standard way of managing resources
such as applications, devices, and services.
- JNDI— Java Naming and
Directory Interface enables accessing the Naming and Directory
Service such as DNS and LDAP.
- JAXP — Introduces
the Java API for XML Processing (JAXP) 1.4 technology.
- JAXB — Introduces
the Java architecture for XML Binding (JAXB) technology.
- RMI — The Remote Method
Invocation API allows an object to invoke methods of
an object running on another Java Virtual Machine.
- Reflection — An API
that represents ("reflects") the classes, interfaces, and
objects in the current Java Virtual Machine.
- Security — Java
platform features that help protect applications from
malicious software.
- Sound — An API for
playing sound data from applications.
- 2D Graphics — How to
display and print 2D graphics in applications.
- Sockets Direct Protocol — How to
enable the Sockets Direct Protocol to take advantage of
InfiniBand.