Introduction to Java Programming, Brief Version: Pearson New International Edition - Liang, Y. Daniel