If you are into programming and computer science, you no doubt have been exposed to C++. The industry standard is C++ because of its easy expandability and because it is a difficult language to learn when you get into memory management. Many teachers favor it in college, with the attitude of "once you have learned C++, you can learn anything else because everything else is easier." Many everyday applications people use have been programmed in C++.
On the other hand, Java is very object oriented, and offers one thing that helps with the dreaded memory management issues of C++. Java includes a "trash collector" that takes the tedious task of worrying about memory off of the programmer. Many Java critics claim that Java is a bad language to use because of its slow speed. This may have been the case when Java was first introduced, but with latest releases Java has been proven to run almost as fast as the same application made in C++. Java also includes many packages that aid in graphics coding. In order to achieve these things in C++, you need to fool around with the internal GUI, or learn different languages such as DirectX or OpenGL to accomplish what is already included in Java.
The choice still comes down to the coder. If they prefer a language that is used more they can choose to code in C++. If they want to offload difficult tasks and focus on graphics and GUI interfaces, they can choose Java.