There is no difference between the objects;
you have a HashMap<String, Object> in both cases.
There is a difference in the interface you have to the object.
In the first case, the interface is HashMap<String, Object>, whereas in the second
it's Map<String, Object>. But the underlying object is the same.
The advantage to using Map<String, Object> is that you can change the underlying
object to be a different kind of map without breaking your contract with any code
that's using it. If you declare it as HashMap<String, Object>, you have to change
your contract if you want to change the underlying implementation.