Java Foundations by Jean Lewis & Peter DePasquale