Понимание примитивных переменных в языке программирования Java

Введение

Вы можете думать о данных (переменных) в наших программах как о блоках, содержащих значения. Они различаются по размеру и форме, но по сути являются контейнерами данных, ничего более сложного.

Мы будем обсуждать два типа данных в Java в двух отдельных статьях; примитивы и ссылки на объекты.

В этой статье мы обсудим примитивы.

Так что же такое примитивы?

Лично мне нравится делать перед тем, как изучать новое понятие, пытаться угадать его значение по тому, как называется это понятие.

В этом случае концепция является примитивной. Допустим, я понятия не имею, что это может означать в контексте Java (или любого другого языка программирования, поскольку эта концепция является общей для многих из них).

Что такое примитив в английском языке? Это может означать бесхитростный, старый, простой и т. д.

Все эти разные значения связаны с концепцией, которую мы здесь изучаем!

Примитивы — это переменные фундаментальных типов (они содержат простые битовые комбинации), вы можете попытаться угадать, какие типы данных существовали в программировании дольше всего.

Вы можете рассматривать предыдущее угадывание как игру, в которую вы можете сыграть, прежде чем узнать о концепции, это то, что я лично делаю, и я обнаружил, что это помогает!

Хватит болтать, в Java существует 8 примитивных типов (подробности см. по этой ссылке):

  • boolean: значения true или false
  • char: 16-битные символы (используется система Unicode и ASCII).
  • byte: 8-битные целые числа.
  • short: 16-битные целые числа.
  • int: 32-битные целые числа.
  • long: 64-битные целые числа.
  • float: 32-битные числа с плавающей запятой (числа с десятичной точкой, например: 3,14)
  • double: 64-битные числа с плавающей запятой.

Так коробки вы сказали?

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

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

  • имя, которое может быть любым, что вы можете придумать (кроме тех, которые начинаются с цифр или ключевых слов)
  • тип, который описывает тип значения, которое может содержать поле, примитив или тип объекта
  • размер, о котором вам не нужно слишком беспокоиться, за исключением предоставления значения, превышающего вместимость коробки.

Важный!

Давайте подробнее остановимся на последней характеристике — размере коробки.

Из предыдущего списка примитивных типов вы можете ясно заметить, что int больше, чем short и byte. И что long больше, чем int.

Рассмотрим этот пример:

// Creating two boxes, x and y of types int and short respectively
int x = 30;
short y = x;
// This provokes an error (incompatible types)

Хотя не странно?

Значение 30 может содержаться в обоих полях (поле int для 32-битного и поле short для 16-битного), так почему же это происходит?

Что делает этот y = x, так это то, что он пытается скопировать значение поля xв поле y. Имейте в виду, что поле x содержит значение больше, чем вместимость поля y.

Значение 30 в int не совпадает со значением в short из-за разницы в размере. И именно поэтому компилятор выдает ошибку!

Мы не можем поместить большую коробку в меньшую.

Но как насчет того, чтобы пойти наоборот?

short y = 30;
int x = y;
// Works like a charm

Всегда возвращаясь к нашей аналогии с коробкой, это сработало, потому что мы помещаем маленькую коробку (shortvariable) в большую коробку (intvariable).

Как отличить типы объектов от примитивов?

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

Примитивные переменные содержат только информацию, тогда как объекты (или переменные ссылочного типа) содержат как информацию (также называемую состоянием или атрибутами), так и подпрограммы (правильно называемые методами или поведением, которые являются функциями в объектах).

Примитивы НЕ являются объектами. Так что в следующий раз, когда кто-то будет разглагольствовать о том, что все в Java является объектом, вы знаете, что это неправда.

Вы можете получить доступ к членам объекта (атрибутам и методам) с помощью «.» вот так:

object.someAttribute
object.someMethod()

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

Спасибо за чтение!

Вот оно! Надеюсь, вы узнали что-то новое и получили удовольствие от чтения!

Любые отзывы или конструктивная критика приветствуются и приветствуются, поэтому, пожалуйста, сообщите мне, что вы думаете в комментариях, чтобы я мог улучшить качество. Спасибо за прочтение ❤️

Подпишитесь на меня в Твиттере, чтобы узнать больше!

Удачи!