When I first started learning Java, I decided to write a little game applet as an exercise to learn about the language and its standard packages. There were no books available and the only documentation was the on-line version supplied with the JDK, which was reasonably good, if a little skimpy/ambiguous in parts.
The result of that exercise is a "pong"-like game, called "PavaJong". Here is a link to the game. The source code is publicly available (follow the links on the game page).
Recently, I decided to try out Java on a decidedly non-toy "real world" problem: the ATM Forum-specified UNI 3.1 signalling protocol (the specification for which is publicly available at their anonymous ftp site [click here]).
I've been working on the signalling package in my limited spare time and it's nearing completion. I decided to take a break and write a little applet to illustrate/animate its use. It should prove educational to those unfamiliar with the protocol.
The animation applet can be found over here. Note that while the applet itself is small, it requires the underlying protocol classes which can take a while to load if you're connected via a low-speed modem line.
By Spring '96 there were a plethora of Java-related books to be found. Most seem to be fluff, but I can personally recommend "Java in a Nutshell"; it's proved to be a handy reference in conjunction with the on-line JDK, and at $14.95 the price can't be beat (note: O'Reilly is bumping up the price after 6/30/96). I'd give it 4 out of 4 stars.
"Core Java" was recommended to me, but I was a little disappointed. It's more of a beginner/intermediate level book, and has a decided "Windows" bias (gushing about the "invention" of long file names, explaining the mysterious "alt" key"). Still, there are pearls to be found within, and its info-to-fluff ratio is high compared to most of its competition. I'd give it 3 out of 4 stars.
The "official" books coming out, "The Java Language Specification" and "The Java Virtual Machine" will likely take on the "bible" role that the ARM played for C++, and will be must-haves for the hard-core.