WHY ARE STRINGS IMMUTABLE IN JAVA? ESSENTIAL UNDERSTANDING FOR DESIGNERS