Learning Java: An Introduction to Real-World Programming with Java - Marc Loy