The difference is that in C++ your object is on the stack, whereas in Java, your object is in the heap. If A and B are Objects, any time in Java you do:
B = A
A and B point to the same object, so anything you do to A you do to B and vice versa.
Use new HashMap()
if you want two different objects.
And you can use Map.putAll(...)
to copy data between two Maps.