Effective Java — Joshua Bloch, Addison-Wesley 2008 (2nd ed.), ISBN 978-0-321-35668-0
This is not just the best book on Java, but one of the best I’ve read on any programming subject. Every Java developer will benefit from Bloch’s solid advice and thorough exploration of language quirks, on a par with classic namesake Effective C++. Unlike that collection of arcana, however, Bloch’s lucid writing and broad coverage of essentials also make Effective Java a great introduction for users of other languages. Buy this book as soon as possible, even if you don’t buy any other Java books.
Pro JavaFX 2 — James L. Weaver et al., Apress 2012, ISBN 978-1-4302-6872-7
With most JavaFX literature still based on version 1, this is the first comprehensive title for the current release. However, if you’re expecting a practical guide to building user interfaces you’ll be disappointed. The chapters on layout and basic controls are maddeningly short and vague, inferior even to Oracle’s own free tutorials. In an unfortunate coincidence, many code samples use the builder pattern which has been deprecated in Java 8. Meanwhile, JavaFX 2’s new markup language FXML gets a ludicrous seven pages while an incredible 135 out of 619 pages are wasted on Visage, the informal (and irrelevant) successor to the obsolete JavaFX Script. That’s blatant content recycling from the first edition which had covered that language extensively.
Pro JavaFX 2 has some merit regardless. JavaFX comprises not only UI controls and FXML, but also a complex new application infrastructure. The chapters devoted to aspects of that subject – concurrency, data binding with properties and collections, interaction with web services – are much more detailed and well worth reading. Chart controls and media playback are also explained quite thoroughly. You’ll have to decide for yourself if these bright spots justify putting up with the book’s significant content gaps, never mind the often clumsy and repetitive writing. JavaFX deserves better than this.
(See Developer Books for my complete review archive. I later removed Pro JavaFX 2 from that archive as it was quickly obsoleted by new JavaFX versions and a later edition, which I haven’t read.)