Fundamentals of Java Programming - Mitsunori Ogihara (Springer, 2018)