Beginning java 8 language features : lambda expressions, inner classes, threads, I/O, collections, and streams (2014)