Most of the pointer related manipulation is done implicitly by the JVM and only references are used by the program. This is in order to abstract the memory from the overall application program in order to keep it safe from corruption, insecure access, etc memory related problems.