Thinking in Java (4th Edition)

Perfect for migrating to Java from a fellow object-oriented language (such as C++), the second edition of Thinking in Java continues the earlier version's thoughtful approach to learning Java inside and out, while also bringing it up to speed with some of the latest in Java 2 features. This massive tutorial covers many of the nooks and crannies of the language, which is of great value in the programming world. # Object-design basics # Inheritance and polymorphism # Object lifetimes # Exception handling # Multithreading and persistence # Java on the Internet # Analysis and design basics # Java basics: keywords and flow control # Initializing objects # Garbage collection # Java packages # Designing for reuse: composition vs. inheritance # The final keyword # Interfaces and inner classes # Arrays and container classes # Java I/O classes # Run-time type identification # UI design basics with Swing # Deploying to JAR files # Network programming with sockets # JDBC database programming # Introduction to servlets # JavaServer Pages (JSPs) # RMI # CORBA # Enterprise JavaBeans (EJBs) and Jini # Cloning objects # The Java Native Interface (JNI) # Java programming guidelines Download here.