WHY ARE STRINGS IMMUTABLE IN JAVA? DETAILED ANALYSIS FOR DEVELOPERS