JavaCore
JavaCore is a summary of experience with Java core technologies
...It begins with syntax, data types, object-oriented programming, methods, arrays, exceptions, generics, reflection, annotations, and strings. Advanced material covers regular expressions, encoding, encryption, internationalization, Java 8 features, and the service provider interface. Separate sections explain collections, streams, traditional I/O, NIO, serialization, sockets, and networking. Its concurrency coverage includes threads, locks, atomics, thread pools, concurrent containers, synchronization, and the Java Memory Model. JVM chapters address memory, garbage collection, bytecode, class loading, diagnostics, monitoring, and performance tuning.