文字列はクラスです。 文字列クラスは文字列を表します。「abc」など、Java プログラムのすべての文字列リテラルは、このクラスのインスタンスとして実装されます。
文字列は定数です。作成後に値を変更することはできません。文字列バッファーは可変文字列をサポートします。String オブジェクトは不変であるため、共有できます。例えば:
String str = "Java lovely";
次と同等です。
char data[] = {'J', 'a', 'v', 'a', ' ', 'l','o', 'v', 'e','l', 'y'};
String str = new String(data);
length は String クラスのメソッドです。
上の部分は
salary obj=new salary();
obj.bonus(45000);
この給与ではクラスであり、この「obj」のオブジェクトを作成し、ボーナスは給与クラスで定義したメソッドであり、そのメソッドを呼び出しています
そしてその他は
String name="Java lovely";
name.length();
ここは同じです
String name=new String("Java lovely");
そして、String オブジェクト 'name' で length メソッドを呼び出しています。
どちらも同じですが、違いの 1 つは、文字列が定数 (不変) であることです。つまり、一度作成すると変更できませんが、給与クラスは定数ではなく、変更できます。
Java をよりよく理解するには、この本を読むことができます。頭から Java