Introduction to Java Programming, Comprehensive - Liang, Y. Daniel