Book

Books

 

Programming in Java

Bruce Eckel
Thinking in Java (4th Edition)
http://www.amazon.com/Thinking-Java-4th-Bruce-Eckel/dp/0131872486

Note: I did not read that book, so it a reference from someone I know. 

 

Design Patterns

 

Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides
Design Patterns: Elements of Reusable Object-Oriented Software
http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612

Note: advanced book on how to structure OO software