Introduction to Java programming comprehensive version - Liang, Y. Daniel (Prentice Hall, 2011)