2012-01-09 2 views
41

Это экзаменационный вопрос, и мне было интересно, что первый тип и ссылочный тип? С массивом Я знаю, что ссылочный тип состоит из массива, состоящего из объектов или переменных, но примитивный тип - это то, где вы создадите массив только с int или string. (справа?)В чем разница между примитивными и ссылочными типами?

Как вы думаете, что вы ответите на вопрос по тесту и получите хороший кредит? Не ссылаясь прямо на примитивный тип ARRAY ... Есть ли способ сделать это без этого? Или вы думаете, что было бы просто объяснить это с помощью массива.

+2

'..примитивный тип - это то, где вы должны создавать массив только с строками int или строк [или быть более точными:' String ') не являются примитивными типами в java – amit

+2

Всякий раз, когда люди задают эти типы вопросов , Я рекомендую им сначала изучить C. – taskinoor

+0

@taskinoor C имеет указатели не ссылки –

ответ

36

Эти примитивные типы в Java:

  • булево
  • байт
  • короткий
  • голец
  • INT
  • долго
  • поплавок
  • двойной

Все остальные типы являются ссылочными типами: они ссылаются на объекты.

Это первая часть Java tutorial about the basics of the language.

+3

Хотя я прав, я сомневаюсь, что он получит полный кредит за этот ответ. Я думаю, что лектор ожидает услышать больше о том, что означает «териальные ссылочные объекты», а также пример, показывающий, что происходит с переменной, в вызывающей среде, если вы меняете его в вызываемом методе – amit

+3

Да, но я не буду повторять все что говорится в учебнике, и я предпочитаю давать ему указатели на страницы, где он может учиться, а не готовый к использованию ответ. –

+0

Обратите также внимание на то, что все типы массивов являются объектами и могут быть отправлены в/из 'java.lang.Object'. – Nayuki

1

Короткий ответ - это примитивы - это типы данных, а ссылки - указатели, которые не сохраняют свои значения, а указывают на их значения и используются на объектах /.

Primatives:

булево

символов

байт

короткий

целое

длиной

поплавок

двойной

Много хороших ссылок, которые объясняют эти основные понятия.http://www.javaforstudents.co.uk/Types

2

эти примитивные типы данных

  • булево
  • символов
  • байт
  • короткий
  • целое
  • длиной
  • поплавка
  • двойной

сохраняется в стеке в памяти, которая управляется памяти на другой тип тип данных объекта вручную или эталонных данных, хранящейся в голове в памяти под управлением GC

это самое важное различие

+0

№. Первоначальное значение может быть сохранено в куче или в стеке. Это будет в куче, если это поле какого-то объекта. –

70

из книги ОСА JAVA SE 7

Подобно тому, как мужчины и женщины принципиально отличаются (по словам Джона Грей, автор мужчины с Марса), примитивные переменные и ссылочные переменные объекта отличаются друг от друга в несколькими способами. Основное отличие состоит в том, что примитивные переменные хранят фактические значения, тогда как контрольные переменные хранят адреса объектов, на которые они ссылаются. Предположим, что класс Person равен . Если вы создаете переменную int a и объект ссылочной переменной, они будут хранить свои значения в памяти как , показанные на рисунке 2.13.

int a = 77; 
Person person = new Person(); 

enter image description here

+3

Это должен был быть принятый ответ! – Solace

+2

Да, это должен был быть принятый ответ !!! –

+0

они должны дефинитивно увеличивать время в ведьме, вы можете отметить лучший ответ на 24h, а затем всплыть в ремайдер, чтобы напомнить вам отметить один, чтобы люди не спешили с ним. Я мог бы также сказать, что типы референтов могут хранить примитивные, но я знал, что их было больше. Спасибо. –

3

Короче говоря, На самом низком уровне мы имеем группу примитивных типов, такие как «байты, короткие, межды, длинную, с плавающей точкой, двойным, логическое значение, полукокс» и справочные типов в основном предназначенные для группировки примитивных типов. Таким образом, вы можете иметь группу int как список, группу char как строку, класс примитивов и т. Д.

Еще один важный фактор касается примитивного типа, содержащего значение и адрес ссылки на обращение.

int item = 3; 
int item2 = item; 

Выполнение элемента2 удерживает значение 3 еще. Но для ссылочного типа говорят

Point p = new Point(1.0, 2.0); 
Point q = p; 

д будет держать адрес объекта р и в VM его все еще один момент. Аналогичным образом адрес передается методам ссылочного типа, тогда как значение будет передано для примитивного типа. Большинство других различий также связаны со значением и адресом.

0

Примитивы противСсылки

Первый: -

Примитивные типы основные типы данных: byte, short, int, long, float, double, boolean, char. Примитивные переменные сохраняют примитивные значения. Ссылочных типов являются любым инстанциируемым классом, а также массивы: String, Scanner, Random, Die, int[], String[] и т.д. Ссылочных переменными хранят адреса в места в памяти для того, где хранятся данные.

Второй: -

Примитивные типы хранят ценности, но Ссылочный тип магазина ручки на объекты в куче пространства. Помните, что ссылочные переменные не являются указателями, как вы могли видеть на C и C++, они просто обрабатывают объекты, поэтому вы можете получить к ним доступ и внести некоторые изменения в состояние объекта.

Подробнее: http://javarevisited.blogspot.com/2015/09/difference-between-primitive-and-reference-variable-java.html#ixzz3xVBhi2cr

2

Примитивные типы данных:

  • предопределен языком и назван по ключевому слову
  • Итого нет = 8
    булево
    символ
    байт
    short
    целые
    долго
    поплавок
    двойного

Ссылка/Объект Типы данных:

  • Создан с помощью определенных конструкторов классов
  • Используются для доступа к объектам
  • Значение по умолчанию любой ссылочной переменной имеет значение
  • Эталонная переменная может использоваться для обозначения любого объекта объявленного типа или любого совместимого типа.
0
  1. Java имеет восемь примитивного типа: INT, двойная, с плавающей точкой, длинный, короткий, байты, символ, логическими. Это означает, что программист не может определить новый примитивный тип.
  2. Тип ссылки определяется пользователем, поэтому их неограниченное количество. 4 базовыми ссылочными типами java являются: классы, интерфейсы, массивы, континуумы.
  3. Примитивные типы представляют собой одиночные значения. Тип ссылочного типа объединяет типы, которые содержат нулевые или более примитивные значения или объекты.
  4. Примитивные типы требуют от одного до восьми байтов памяти.Когда примитивное значение сохраняется в переменной или передается методу, компьютер делает копию байтов и удерживает значения. С другой стороны, объекты могут потребовать больше памяти.
Смежные вопросы