If the Java you know is J2EE style, with AbstractFactoryHelperBeans, then C++ is likely to be simpler :-)
The main difference is that, in C++, like in C, you have direct control over data structure layout in memory. This is great for when you need to fit in small spaces, but it's annoying when you end up using a pointer wrong and smashing some random piece of memory where some other part of your program lives.
Also, in C++, you have to call delete on each object exactly once. Forget it, and you leak memory. Do it more than once, and you crash.
Also, C++ (and C) has value objects/structs, which Java does not. In java, pretty much everything is a heap/reference object.
If you're doing embedded systems with small amounts of memory (Arduino, PIC, raw AVR, MSP430, etc) then C and a carefully chosen subset of C++ is likely your best bet; Java is too big to fit comfortably and will limit how much you can do on those devices. Also, don't use the heap ("new" or "malloc") at all in those small spaces; pre-allocate everything you need as static/global instances.