Ich habe das auch nicht als Angriff empfunden
Ich wollte nur verdeutlichen was ich meine. 
Das du in Java noch nie was mit Pointern zu tun hattest liegt einfach daran das man keine "richtigen" Pointer verwendet. Unter C++ hast du sowohl Pointer als auch Referenzen. Und genau:
Unter Java wird der Dynamische Speicher automatisch mit dem GC aufgeräumt.
Aber unter C++ musst du das alles selbst machen.
Und wenn du da einmal einen kleinen Denkfehler drin hast hast du mal schnell das Problem, dass du auf etwas zugreifen willst was gar nicht existiert. (Weil es bereits vorher gelöscht wurde)
In Java wäre das so ähnlich wie das:
String s = null;
s.length();
In Java hast du dann eine NullPointerException.
Und in C++ arbeitest du eben (meistens) viel mit Pointern und musst Dynamischen Speicher selbst anfordern und auch wieder löschen. Das wollte ich dir eigtl. nur zeigen:
Java != C++
(Wenn auch ähnlich)