String is only special because otherwise you would have to do a lot of extra work. Consider the following example:
If String weren't special, you would have to write the following:
As you see that looks bad, and it takes too long to write. Therefore, the creators of
Java (and several other languages as well; even C has string literals even though it doesn't have a string type) decided that String will be like any other object, but with a few syntactic extras like String literals and String concatenation with +. They also added the String pool to prevent a new object to be created for each String literal. As far as I know, those are the only differences.