Подтвердить что ты не робот

Почему для String нет примитивного типа?

Почему Java не имеет примитивный тип для String, когда большинство других типов данных делают?

4b9b3361

Ответ 1

String - это объект, он не является примитивным типом, а всего лишь массив символов. Причина, по которой примитивные типы существуют в Java вообще, интересна, выдержка из интервью Джеймса Гослинга:

Bill Venners: Почему существует примитивный типы в Java? Почему не все просто объект?

Джеймс Гослинг: Полностью эффективность вещь. Есть все виды людей которые создали системы, в которых это все объекты. Есть различные способы сделать это, и все у них есть довольно серьезные проблемы. Некоторые из них просто медленны, потому что они выделяют память для все. Некоторые из них пытаются сделать объекты, где иногда они объектов, иногда они не являются ( это стандартная система LISP), и тогда все становится действительно странным. Это вроде работ, но это странно.

Просто делайте это так, что есть примитив и объекты, и они просто разные. Вы решаете множество проблем.

Таким образом, примитивные типы существуют по соображениям эффективности.

Ответ 2

int, char, float, double и т.д. все имеют фиксированную длину в памяти. например int имеет 4 байта, таким образом 32 бита.

но строка может иметь разную длину, на самом деле это массив из char.

Ответ 3

Большинство языков программирования не рассматривают примитив строки, поскольку на самом деле это массив символов. Примитивные типы почти всегда имеют фиксированный размер.

Я должен сказать, что некоторые люди могут считать String "примитивным", потому что он встроен. Но это не примитивно в смысле базового типа, а не композитного типа. Поскольку строка представляет собой массив символов, это составной тип.