The way I see it: there are two kinds of entities here: variables, and objects these variables reference/point to. If a variable is mutable, it can be made to reference a different object. If it is immutable, it will always reference the same object, the one it initially references. If an object is mutable, its properties/contents can be changed (e.g. adding to an array). If it is immutable, it will always remain the same as it was when it was initialized.