To be honest, I really prefer the way things work in C/C++.
I prefer being forced to use pointers and design my own memory management system, rather than trying to figure out what the hell is going under the hood in Java...
Java is like a horse: If you're a good rider, it can take you into amazing places at a relatively fast pace, thought lots of different terrain, in a relatively comfortable manner. The problem is, just like a horse, it has a mind of its own and might not always do what you expect it to do.
C is like a motorbike: When finely tuned, it can take you everywhere really fast, as long as you're driving on the right terrain type, with the right kind of fuel and you have made sure all you've tightened the little nuts and bolts in their right places. It takes patience but at least, it only does what you instructed it to do.