Java でのString という型は、String というクラスによって定義されています。
Javaでは、プログラムの中で活躍するのは、基本的には、クラスとそのインスタンスで
あるオブジェクトなのですが、実は、それ以外のものも、大事な役割を
果たしています。 このことは、クラスと型の関係として、整理すると
わかりやすいかもしれません。
全てのクラスは型を定義しますが、全ての型がクラスによって定義されるわけでは ありません。 Java の型の中には、クラスなどの他の型の定義の部品として用いられ、 それ自身は、他の型には還元できない「プリミティブな型」が、あらかじめ言語の中に 組み込まれて用意されています。 次の例は、Java の「プリミティブな型」の例です。
int i = 1996 ; float f = 4.23 ; double d = 1996.04231235 ; char a = 'A' ; boolean flag = true ;
これらの例は、基本的には(booleanは、Cにはありませんし、Javaのcharは、2byte です)、Cにおいて見られたもの同じです。というより、Javaは、Cとの文法的な 同一性を意識して作られましたので、こうして、Cから持ち込まれた要素が、 「すべてオブジェクトである」という「オブジェクト指向言語」としての 一貫性を少し弱めています。 Cプログラマにとっての、Javaの習得の容易さを考えれば、やむをえないこと だと思います。