C++ has much more power for creating a wide range of applications. But java has the nice option that you can compile it to be platform unspecific if i remember correctly. if you are into messing with linux dev or making video games or your own windows apps C++, if you want to make things that are more net centric go with java.