Понимание примитивных переменных в языке программирования 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()
Как мы уже говорили, обо всем этом мы поговорим в следующей статье. Я указал на это, чтобы, если вы найдете «.» используется с переменной, знайте, что это объект, а не примитив!
Спасибо за чтение!
Вот оно! Надеюсь, вы узнали что-то новое и получили удовольствие от чтения!
Любые отзывы или конструктивная критика приветствуются и приветствуются, поэтому, пожалуйста, сообщите мне, что вы думаете в комментариях, чтобы я мог улучшить качество. Спасибо за прочтение ❤️
Подпишитесь на меня в Твиттере, чтобы узнать больше!
Удачи!