Introduction to Java programming, comprehensive version - Liang, Y. Daniel (Pearson Education Limited, 2012)