В чем разница между примитивными и ссылочными типами?

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

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

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

  • логический
  • байт
  • короткая
  • голец
  • ИНТ
  • длинный
  • поплавок
  • двойной

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

Это первая часть учебника Java об основах языка .

Из книги OCA JAVA SE 7

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

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

введите описание изображения здесь

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

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

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

  • Создано с использованием определенных конструкторов classов
  • Используется для доступа к объектам
  • Значение по умолчанию для любой ссылочной переменной равно null
  • Эталонная переменная может использоваться для обозначения любого объекта объявленного типа или любого совместимого типа.

Короче говоря, на самом низком уровне у нас есть группа примитивных типов, таких как «байтовый», «короткий», «int», «long», «float», «double», «boolean», char »и« Reference »), которые в основном предназначены для группировки примитивных типов. Таким образом, вы можете иметь группу int как список, группу char как строку, class примитивов и т. Д.

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

 int item = 3; int item2 = item; 

Если item2 удерживает значение 3 еще. Но для ссылочного типа говорите

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

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

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

  • логический
  • персонаж
  • байт
  • короткая
  • целое число
  • длинный
  • поплавок
  • двойной

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

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

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

Примитивы :

логический

персонаж

байт

короткая

целое число

длинный

поплавок

двойной

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

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

Первый :-

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

Второй: –

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

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

  1. Java имеет восемь примитивных типов: int, double, float, long, short, byte, char, boolean. Это означает, что программист не может определить новый примитивный тип.
  2. Тип ссылки определяется пользователем, поэтому их неограниченное количество. 4 базовыми ссылочными типами java являются: Классы, Интерфейсы, Массивы, Перечисления.
  3. Примитивные типы представляют собой одиночные значения. Тип ссылочного типа объединяет типы, которые содержат нулевые или более примитивные значения или объекты.
  4. Примитивные типы требуют от одного до восьми байтов памяти. Когда примитивное значение сохраняется в переменной или передается методу, компьютер делает копию байтов и удерживает значения. С другой стороны, объекты могут потребовать больше памяти.
  • Как вы представляете график в Haskell?
  • Interesting Posts

    Ошибка сборки сборки: путь … уже сопоставлен с рабочей областью

    Как найти все таблицы с внешними ключами, которые ссылаются на конкретный table.column и имеют значения для этих внешних ключей?

    Ошибка внутреннего сервера проверки Woocomerce

    .htaccess redirect без изменения адресной строки

    добавить ссылку на фасоль в кварцевую работу весной?

    Spark: как использовать SparkContext.textFile для локальной файловой системы

    Android – циклическая часть кода каждые 5 секунд

    Разделить фрейм данных на несколько выходных файлов

    Дважды нажмите кнопку «Назад», чтобы выйти из операции

    Bash цитирует unescaped при подстановке команд

    Почему Iterator :: take_while получает право собственности на iterator?

    ApiController возвращает 404, когда идентификатор содержит период

    Mikrotik – сбросить счетчик пользовательского менеджера после дня или недели

    Я могу подписаться на RSS-каналы для моих оповещений Google в Feedly, но не в моем подкатчике. Почему это?

    Как вырезать / вставить путь к файлу в открывшемся диалоговом окне Mac os?

    Давайте будем гением компьютера.