Почему примитивные типы данных Java не называются типами данных Java? - PullRequest
7 голосов
/ 09 июня 2009

У меня вопрос, почему примитивные типы данных Java не называются просто «типами данных Java» или чем-то подобным?

Ответы [ 9 ]

18 голосов
/ 09 июня 2009

Поскольку в Java больше типов данных, чем просто примитивы . Примитивные типы данных:

  • byte
  • short
  • int
  • long
  • float
  • double
  • boolean
  • char

Тип данных, который не является примитивным, является ссылочным типом данных, которые являются ссылками на объекты .

Некоторые примеры:

  • String
  • Integer
  • ArrayList
  • Random
  • JFrame

Вот простой пример различия между двумя типами:

int i1 = 10;
Integer i2 = Integer.valueOf(10);

int i1 - переменная типа данных примитива int, со значением примитива int, равным 10.

Integer i2 - это переменная со ссылочным типом данных Integer, ссылающаяся на объект Integer, который содержит значение 10.

13 голосов
/ 09 июня 2009

alt text

4 голосов
/ 09 июня 2009

Различать их и Объекты .

2 голосов
/ 09 июня 2009

Потому что в Java есть две категории типов.

Из спецификации языка Java, ГЛАВА 4: Типы, значения и переменные :

Типы языка программирования Java делятся на две категории: примитивные типы и ссылочные типы. Примитивные типы (§4.2) являются типом boolean и числовыми типами. Числовые типы - это целочисленные типы byte, short, int, long и char, а также типы с плавающей запятой float и double. Типы ссылок (§4.3) - это типы классов, типы интерфейсов и типы массивов. Существует также специальный нулевой тип. Объект (§4.3.1) - это динамически создаваемый экземпляр типа класса или динамически создаваемый массив. Значения ссылочного типа являются ссылками на объекты. Все объекты, включая массивы, поддерживают методы класса Object (§4.3.2) . Строковые литералы представлены String объектами (§4.3.3) .
1 голос
/ 08 марта 2015

Объекты также являются переменными, поэтому термин "примитив" используется для различения этих типов.

1 голос
/ 03 мая 2012

Чтобы понять почему, я думаю, вам нужно взглянуть на языки программирования, отличные от Java. Например:

  • В C ++ существуют примитивные типы данных (int, double и т. Д.), Составные типы данных (struct и т. Д.) И типы объектов / ссылок.

  • В Ada существуют примитивные типы данных и другие типы данных, которые являются производными от примитивных типов; например Типы диапазонов.

Итак, я понимаю, что типы данных Java описываются как «примитивные типы данных», чтобы поместить их в контекст других языков. Они являются «типами данных» в том смысле, что у них нет идентификатора объекта, и они «примитивны» в том смысле, что конкретные типы определяются (и являются фундаментальными) языком Java.

1 голос
/ 09 июня 2009

Поскольку ссылочные типы также могут рассматриваться как типы данных. Примитивы считаются типами значений. Оба можно считать типом данных.

1 голос
/ 09 июня 2009

Чтобы отличить их от типов данных объекта.

0 голосов
/ 29 июля 2009

Не примитивные типы называются ссылочными типами Java и имеют имя, начинающееся с заглавной буквы. Например: Integer, Float и т. Д. Для не примитивов мы можем создавать экземпляры.

...