I don't like those extremely long lists of books or links. You see
them at readings on university for example. There they usually consist
of a list of all more or less famous books that were ever written about
the theme of the reading. When someone from a lower semester asks me
which books to use for a certain reading I can only recommend about
two books in most cases.
On this page you will only see recommendations for the really good
sites / books.
In my opinion there are only two books / tutorials in question.
Sun JDK, editor (good ones include vim, gvim, emacs, xemacs). For a long time I thought that it were merely harder to learn when one starts with an IDE from the very beginning, but after I observed many people who did so I am sure that it is impossible to ever become good at Java with an IDE from the very beginning. So no Netbeans, Eclipse, Intellij Idea or similar environments until you have some skill. See the FAQ of Tony Morris for details.
There are many books about Java, but only one is a must-have:
"Effective Java" Second Edition
by Joshua Bloch.
After finishing the appendix
of "Thinking in Java" there are basically two ways to go:
"Effective Java" or "Design Patterns".
There are many
sample chapters available for download.
Even those who know the first edition must get the
new one!
One book is a must-have: "Design Patterns" by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides. In my opinion the first chapter is particularly valuable and timeless. Regarding the third chapter, the following design patterns are considered controversial these days, because they compromise with the principles of programming to an interface (see chapter 1) or rely on concrete inheritance (see also my Design Principles article):
The same problem applies to some code samples and flavours of certain patterns.
... are found in the Design Principles article.
Effective painting with AWT or Swing
This article describes precisely how the AWT and the Swing
painting mechanism works and how it should be used.
java.util.prefs
This article is a brief introduction to the Preferences API.
Creating HelpSet Data and Navigation Files for JavaHelp
Ironically, JavaHelp is the 2nd party library with the single worst
help / documentation. For the old version there once was a
book named Creating Effective JavaHelp. It offers a free sample chapter
which describes how to
create HelpSet data and navigation files. The
files of the example used in that chapter and other example
files are available for download, too. The chapter also contains
a very short, very simple introduction to XML.