Java assumes the programmers don't know what they are doing, C/C++ assumes they do.

That is the reason they left out things like pointers, unsigned types (not sure about this one), operator overloading, goto, casting to smaller types ("if (a = 5)"), stack allocations... etc.