I'd say learn both. Learn C++ first to get the hard things out the way, then go to Java, it will be a breeze. Keep equally programming in both so you don't get too used to one language.
Except some parts of computer science deal specifically with the way actual computers behave. Take for instance the design of data structures that operate efficiently in high-latency memory (disks), or of algorithms to minimize the risk of data corruption in the event of hardware faults.