title: Why is the String class declared final in Java?
body: <p>From when I learned that the class <code>java.lang.String</code> is declared as final in Java, I was wondering why that is. I didn't find any answer back then, but this post: <a href="https://stackoverflow.com/questions/2068570/how-to-create-a-replica-of-string-class-in-java">How to create a replica of String class in Java?</a> reminded me of my query. </p>
  
  <p>Sure, String provides all the functionality I ever needed, and I never thought of any operation that would require an extension of class String, but still you'll never know what someone might need!</p>
  
  <p>So, does anyone know what the intent of the designers was when they decided to make it final? </p>