It's used everywhere in business so you're basically guaranteed to find a job if you're good with it, and vice versa, the hiring pool is big if you're a corporation. It's got a robust standard library. In the last few years it's picked up more and more useful features like lambdas and dynamic typing to cut down on boilerplate. It'll run on basically anything and you, the developer, don't need to worry about compiling to specific target platforms. It's also avoided a lot of the design-by-committee garbage that's turned C++ into a Venn diagram of feature incompatibility.
That said, package management in java kind of sucks. There's still plenty of boilerplate. The language is highly dependent on meta-programming annotations in many cases that hide code from you and obscure details. Exceptions are stupid and expensive.
It's used everywhere in business so you're basically guaranteed to find a job if you're good with it, and vice versa, the hiring pool is big if you're a corporation. It's got a robust standard library. In the last few years it's picked up more and more useful features like lambdas and dynamic typing to cut down on boilerplate. It'll run on basically anything and you, the developer, don't need to worry about compiling to specific target platforms. It's also avoided a lot of the design-by-committee garbage that's turned C++ into a Venn diagram of feature incompatibility.
That said, package management in java kind of sucks. There's still plenty of boilerplate. The language is highly dependent on meta-programming annotations in many cases that hide code from you and obscure details. Exceptions are stupid and expensive.