I started a little contract job that requires me to use Java. I was given a Java book by the project manager, but it covers Java 1.3 and I understand that Java is now around 1.6. I would like to know if there are any major core additions to the language that I can read up to after getting the basics down with this book?
I would dump any book that is that old, and get (or even buy at my own expense) one that is newer. Are you supposed to work against 1.3 code bases?
Major changes include:
Generics
Collection framework rework
enumerations
The aggregated weight of several versions of API changes
Better API for concurrency
Boxing (not that big a deal IMHO)
There is a big difference between Java 1.3 and Java 6.
A number of major language enhancements were added in Java 5: generics, an enhanced for-loop syntax, autoboxing and unboxing, typesafe enums, varargs, static imports and annotations. Read more about those changes here.
Besides that, the standard Java library has a number of new features, including APIs for working with XML (javax.xml), non-blocking I/O (java.nio), efficient concurrency APIs (javax.util.concurrent), scripting (javax.script) and much more.
A book about Java 1.3 is hopelessly out-of-date and you'll especially miss the Java 5 language features. Things like generics and annotations are not trivial changes. Buy a new book.
Sun also has an excellent set of online tutorials, which is most likely worth more than your old Java 1.3 book.
The Java language has grown larger and more complex from version 1.3 to 6, but is still backwards compatible, so you will be able to work with Java 1.3 sources effortly.
You will need a suitable compiler though. If you use Eclipse, just set the compiler to conform to Java 1.3.
When you have your head around the Java 1.3 core, you can easily (heh) step up to the new stuff in Java 5. Espcially Generics take some getting used to.