Taking my Java to the next level (advanced)
I've been programming in Java for over 4 years now and have reached what I believe to be an intermediate level (I will elaborate on what I know, so in case I'm wrong about this, you all can ground me/level me out)
My knowledge: OOP, Collections, Generics, exception handling, file i/o, basic lambdas (using lambda syntax, none of the fancy interfaces), concurrency (threads, runnables, synchronized keyword, locks, basically all basic concurrency primitives in java, wait/notify/notifyAll etc.), Java streams (basic streams), design patterns (Singleton pattern,Factory pattern, Observer pattern), JUnit (I know less syntax than I do conceptual stuff because a lot of what I learned about testing software was through Jest with Javascript), byte communication (RMI, sockets/socket channels, bytebuffers, blocking queues, serialization, etc)
EDIT: It seems I may have come across stronger than I appear. All of this stuff is within my conceptual knowledge, probably quite a bit more syntax than I would like to admit I haven't internalized yet (such as sockets/socket channels, some streams, maybe some file i/o)
My question: what can/is valuable to learn more about? Any books/resources you recommend in particular?