-source 1.5 is the default

With early releases of the javac compiler for what is now called Java 5.0, you had to use the -source 1.5 flag in order to get the compiler to handle generics, enums, autoboxing, the for/in loop, etc.

The -source 1.5 option is now the default. I don't know when this changed, but I just became aware of it. If you have code that uses enum as an identifier rather than as a keyword, you'll need to compile it with the -source 1.4 option. And if you have even older code that uses assert as an identifier rather than a keyword, then you can use the (new) -source 1.3 option.

-source 1.5 is still supported, but is not required. Making it the default is a good thing, and not just because it would be disconcerting to have to type "1.5" every time we wanted to compile a Java 5.0 program.

Books

Comprehensive coverage of Ruby 1.8 and 1.9

"The New Most Important Ruby Book"
Peter Cooper,
rubyinside.com

Completely updated for Ajax and Web 2.0

"A must-have reference"
Brendan Eich,
creator of JavaScript

The classic Java quick-reference