For learning, I would say it depends. If you have a good book or guide, or instructor, and you want to get in-depth, I'd go for C++. It'll allow you to get down the basics of OOP and allow you to get a better understanding of data structures by implementing them yourself.
Java is maybe a little simpler to figure out from a beginner's point of view, so I'm learning towards it. You don't have to worry about memory management, pointers, or implementing your own data structures to do some really cool things. Java has a garbage collector to do memory management for you, and most data structures are already implemented for you, so you can get right down to learning about syntax and data types and what all that "public static void main" business means, and how classes/objects are used, etc. The technical stuff is still very useful to know!
Both languages are very "C like" (C++ obviously being more so haha), so if you learn one, the other will come very quickly to you.
Outside of those two, I've heard Python and C# are good choices for beginner languages, too, though I have no experience with them.