Languages come and go, and no one language is "better" than the next. Sure, a language may be the better tool for a specific software project, but there is no such thing as a "better" language.
Having said that, you should focus your learning efforts on programming methodology, programming paradigms, project management, data structures, and algorithms instead of getting hung up on learning the syntax of as many languages as you can.
There are some things that remain constant from language to language - control structures, sequence, iteration, variables, etc. Likewise, there are some things that are specific to programming paradigms - functions or procedures for structured/procedural programming, and objects or prototypes for object oriented or object-based programming.
I'd say if you understand these methodologies and paradigms, you are more likely to be able to pick up new languages by quickly learning their syntax and API's within a few weeks.
If you're still trying to choose between the two I would say to go for C++. The reason is because it is a multi-paradigm language which means it will give you an understanding of procedural programming style as well as object-oriented programming style. Whereas Java is fully object-oriented.
The guy that says Visual Basic is better should try to wrap his head around the fact that the C# and Visual Basic compilers were written in C++.