Starting Out With Java 5th Edition by Tony Gaddis