a1 and a2 will reference the same data (memory).
the un-mofifiable part comes , only with a2 as entry.
imaging if you are passing a2 to a method where you expect the method to be idempotent. such cases a2 helps.
in summary you cant modify data using a2 pointer.