As far as I know, It is very useful to have strings implemented as immutable objects. You should read about immutability to understand more about it. One advantage of immutable objects is that, you can share duplicates by pointing them to a single instance.
String class is made final to close one of the open doors which can make an immutable class mutable.
There are many chances by which an immutable class can be made mutable if it is allowed to be subclassed (i.e if it can be extended). Therefore often immutable classes are made final so that they cannot be extended, making them strongly immutable as against to weakly immutable.
Thus String is made final to make it strongly immutable.
Final keyword in Java brings in Immutability, i.e the object cannot be changed after its creation.Strings specifically needs to be immutable as it will bring in more security and performance.