You are mentioning very specific uses for Java, and talking about specific Java EE Specifications. Those are not part of the
language.
The language is defined in the standard edition of Java, or Java SE. If you followed the
Java Tutorial back then, which stopped being updated by Java 8, but it's still a good resource for the commonalities with that version., the core language is pretty simple. The way to model the objects and their relationships, inheritance, overload, etc., and the language's safeguards for the developers, the memory management, etc., are much, much more gentler than C++. I mention C++ because it is the language with which Java was compared back when it came out, late 1990s. And from Java 8, the concurrency support has been simplified so much that creating multithreaded processes is pretty harmless for the programmer.