Fundamentals

Default Methods

Collections

Idioms and Techniques

Design Rationale

Advanced Questions

Lambda resources

This page was useful during Java 8 development when information on the new features was relatively difficult to find. Now, however, a cursory search returns hundreds of tutorials, articles and presentations on lambdas and streams. Rather than picking a few of these, I’ve restricted this page to listing major references—currently, official documents and books focussed on lambdas and streams.

Official Documentation

The central official reference for the Java 8 lambda development is the OpenJDK page. Its primary links are to:

The full specification of the language changes required for lambdas and default methods is in JSR 335.

Books

Mastering Lambdas: Java Programming in a Multicore World, by Maurice Naftalin (recently published, no reader reviews yet)

Java 8 in Action, by Raoul-Gabriel Urma, Mario Fusco, and Alan Mycroft (amazon.com reviews)

Java 8 Lambdas, by Richard Warburton (amazon.com reviews)

Mailing lists

These are now mainly of historical interest to anyone wanting to understand the discussions that led to particular features of the final design.

For a long time, the principal open mailing list for discussing the Java 8 lambda-associated features was lambda-dev. The expert group lists were closed. In September 2012 a long-desired goal was achieved with the introduction of new open lists for the expert group discussions. The function of the new and changed mailing lists was explained in this post. In brief, they are these:

The list lambda-dev is for discussion of implementation issues, including bug reports, code review comments, test cases, build or porting problems, migration experiences, and so on. It should no longer be used for language or feature design discussions, though the archives are a useful source for past discussions of this kind. Comments and discussion about the specs now belong on the new lists, described next. (It should be said, though, that in fact language and feature discussion on lambda-dev was continuing at least up until early Nov 2012.)

The expert group list for language feature discussion is not open for subscription or posting, but the archives are publicly readable and its traffic is copied to the public list lambda-spec-observers. This list is for discussion about the spec, but there is no guarantee of participation by the expert group. The public list that is read by the expert group is lambda-spec-comments, which is intended as a “suggestions box” to the expert group rather than a place for engaging in debate with them. Accordingly, you can post and you can read the archives, but it’s not publicly open for subscription.

A similar structure has been introduced for library discussions. There are publicly readable expert group list archives, a public libraries spec observer list, and a libraries spec comments list, all with the same purpose and restrictions as the corresponding language mailing lists.
“The group of Experts who develop or make significant
revisions to a Specification.” (JCP Process Document)