C++ - Why are pointers used so much?

while in Java it is assumed to be by
reference by default

FWIW: One of the main performance problems with Java is that it doesn’t have user-definable value types at all (default or no.) This is one of the main improvements of C# over Java.