Generally, Java was designed to be relatively beginner-friendly in that it assumes the programmer is not that smart or careful, so programmers will be less likely to shoot themselves in the foot when coding Java apps.
#1: Relatively Simple to Use
Java is a high level language, which means Java abstracts away (i.e. handles for you) most of the complex details of the machine (computer) such as memory management, etc. Thus, you can focus on programming instead of worrying about the little details many consider both tedious and difficult.
#2: Less Rewarding from the Start
Java is very stubborn and verbose, which means you need to write a lot of code trying to convince the language to build some feature. Thus, you may need to spend a lot of time coding before you can get a working app. This may be demotivating for coding beginners.
#3: Easier to Maintain
Java is a statically-typed language, which means your code will have to be checked for errors before it can be built into an app. This means errors will be easier to track down. Furthermore, since statically-typed languages are also more strict with the definitions of things, you will have less strange and unexpected errors, which means your codebase will be easier to maintain as it grows in size and complexity.
As a statically typed language, Java is faster than dynamically typed languages because things are more clearly defined. Thus, when the app is running, your machine's resources will not be wasted on checking the definition of something in your code.
#5: Optimized Performance
Modern Java programs are now even more performant thanks to mature JIT (just in time) compilers and improved JVMs, as performance can be optimized in real time to help a Java program run faster. This is very helpful as your app grows larger or needs to handle more processes.