Wieso muss man String in Java großschreiben, aber z.B. int nicht?

In Java ist es Konvention, dass Klassennamen mit einem Großbuchstaben beginnen und primitive Datentypen mit einem Kleinbuchstaben. String ist ein Klassenname und int bezeichnet einen primitiven Datentyp.