String - это объект, это не примитивный тип вообще, просто массив символов. Причина, по которой примитивные типы существуют в Java вообще, представляет собой интересный, выдержка из интервью Джеймса Гослинга :
Bill Venners: Почему есть примитив Типы в Java? Почему было не все просто объект?
Джеймс Гослинг: полностью эффективность предмет. Есть все виды людей которые имеют встроенные системы, где ints и Это все объекты. Есть А. разнообразие способов сделать это, и все они имеют немного серьезных проблемы. Некоторые из них просто медленно, потому что они выделяют память для все. Некоторые из них пытаются сделать объекты, где иногда они объекты, иногда они не (которые это то, что сделала стандартная система LISP), И тогда все становится действительно странным. Это Вид работ, но это странно.
Просто делая это таким, чтобы существуют примитивные и объекты, и они просто разные. Вы решаете много проблем.
Так что в короткие сроки примитивные типы существуют по причинам эффективности.
int, char, float, double и т. Д. У всех есть фиксированная длина в памяти. например У INT 4 байта, таким образом, 32бит.
Но строка может иметь разную длину, это на самом деле массив CHAR.
Большинство языков программирования не учитывают примитив строки, потому что это на самом деле множество символов. Примитивные типы почти всегда имеют фиксированный размер.
Я должен сказать, что некоторые люди могут рассмотреть строку, чтобы быть «примитивным», потому что она встроена. Но это не примитив в том смысле, чтобы быть основным типом, в отличие от композитного типа. Поскольку строка - это массив символов, это композитный тип.