Why String is declared immutable and final in java