why we can change a hashMap which is declared as blank final, but we cannot change a primitive type? for example if I create a map
final Map<String, String> someMap;
and initialize it in constructor, and still I can put values in this. But same is not the case with primitive
final int a;
I cant change the value of a in this case. can somebody explain this ?