2013-08-20 2 views
6

Этот вопрос пришел мне на ум, потому что я где-то читал, что Java не является чисто объектно-ориентированным языком, поскольку он использует примитивы (которые не являются объектами). Я согласен с этим. Теперь моя проблема заключается в том, почему мы используем primitives/wrappers, а у нас уже есть объект того же типа?Primitive vs Тип объекта в Java

В качестве примера, если мы рассмотрим Integer, оно имеет такое же значение, как и int, кроме поведения объекта. почему все еще Java использует primitives при этих условиях?

Как я считаю, если Java использует только тип объекта Autoboxing and Unboxing не нужно. Кстати, к String нет примитива.

+3

related: http://stackoverflow.com/questions/3257967/primitives-types-in-java?rq=1 –

+1

См.: [Почему люди все еще используют примитивные типы в Java?] (Http: // stackoverflow .com/questions/5199359/why-do-people-still-use-primitive-types-in-java) – Jost

+1

Это вопрос обсуждения, который делает его вне темы для StackOverflow. –

ответ

5

Одна из причин связана с использованием памяти. Примитивы, такие как int, float и т. Д., Требуют меньше распределений памяти (я думаю, 4 байта) по сравнению с объектами, которые составляют как минимум 8 байтов. См. Следующее: reference:

Кроме того, много арифметических (числовых) дополняется с использованием примитивов, а не их эквивалентов объектов, и это еще одна причина, по которой они очень важны на языке Java.

+0

Почему у String нет примитива? –

+1

Поскольку строки не являются примитивными типами ЦП. Персонажи, в некоторой степени. Накладные расходы объекта 'String' по сравнению с' char [] 'небрежны. –

+0

Он делает. 'Символ []'. –