+ 2
As far as powerful, they're both powerful and that's really relative to what you're doing. Personally, I know both and would recommend learning both; that's a debate killer. lol Then you have both tools for whatever you're trying to do.
Java runs on a VM so it makes it appealing for a lot of reasons, especially in terms of how compatible it is with nearly everything. However, if I'm an Unreal developer, knowing C++ would be more powerful for me. Get what I mean?