JAVAを参考書で半分くらいすすんだ程度なのですが、

参考書で、

クラスをインスタンス化してオブジェクトを生成し、
Character letter new Character('A');

こんな感じで大文字か調べたりすることが書いてありました
If(letter.isUppercase())
System.out.println("The letter is uppercase");

で、なるほどな。クラスをインスタンス化してオブジェクトを生成して
生成したオブジェクトletterを
letter.isUppercase() とか letter.isSpace()
のように書いて使うのだなと学習したのです。

が、次のStringオブジェクトで

String name = "Hanako";

と、書いてあります。
クラスは全て

String name = new String("Hanako");
のようにして使うのだと思っていたのですが、違うの?という気持ちです。

クラスは全部共通して
クラス名 インスタンス名 = new コンストラクタ();
だと思っていたのに、頭がこんらんしています。

私はこれからクラスごとに、使い方をマスターしなくてはならない
のでしょうか?

それともこれはStringだけの例外なのでしょうか?