Статьи

8 примитивных типов в Java

Когда я начал редактировать свою серию «Основы Java» пару лет назад, я подумал, что было бы разумно начать выкладывать действительно детальную информацию в свои посты. Таким образом, контент для начинающих намного легче усваивается. Для начала я извлекаю всю информацию о 8 примитивных типах в Java.

Примитивные типы Java

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

Примитивный тип Int

Для начала, целые числа Java имеют 32-битные значения со знаком (что означает положительные или отрицательные значения) и обозначаются ключевым словом int :

1
int someNumber = 10;

Конечно, как и у всех примитивных типов, целые числа имеют свои пределы. Поскольку они 32-разрядные, мы рассматриваем диапазон значений от -2 147 483 648 до 2 147 483 647. Это много цифр! Конечно, мы можем подтвердить этот диапазон, используя удобный трюк в панели взаимодействий DrJava:

1
2
Integer.MAX_VALUE // Prints 2,147,483,647
Integer.MIN_VALUE // Prints -2,147,483,648

Естественно, int , вероятно, является наиболее распространенным целочисленным типом, используемым для простых вычислений. Если вам нужен больший диапазон, смотрите long ниже.

Двойной примитивный тип

В отличие от int , двойники Java являются 64-битными значениями с плавающей запятой, и они помечаются ключевым словом double :

1
double someNumber = 110.55;

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

Поскольку double являются 64-битными, у нас есть доступ к значительно большему числу чисел, чем с целыми числами. Если мы используем тот же трюк панели взаимодействий, мы можем выяснить, насколько огромен диапазон потенциальных значений:

1
2
Double.MAX_VALUE // Prints 1.7976931348623157E308
Double.MIN_VALUE // Prints 4.9E-324

Имейте в виду, что отрицательные показатели означают чрезвычайно малые числа — в отличие от крайне отрицательных чисел — поэтому мы не совсем смотрим на тот же диапазон, что и с целыми числами.

В общем, double является выбором по умолчанию для значений с плавающей точкой в ​​Java. Альтернатива — float .

Чар Примитивный Тип

Как мы уже видели, символы Java представляют 16-разрядные символы и помечаются ключевым словом char :

1
char someCharacter = 'f';

Все символы в Java определены в одинарных кавычках. Между тем, двойные кавычки используются для определения строк — о чем мы поговорим позже.

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

1
2
Character.MAX_VALUE // Prints '???'
Character.MIN_VALUE // Prints ''

Чтобы разобраться в этом диапазоне, мы всегда можем привести результаты к целому числу (подробнее об этом позже):

1
2
(int) Character.MAX_VALUE // Prints 65535
(int) Character.MIN_VALUE // Prints 0

Как оказалось, тип char является единственным типом без знака в Java. Другими словами, символ может варьироваться от 0 до 65 535, где каждое число соответствует определенному символу. Чтобы создать символы вне этого списка, Java может объединять пары символов. Проверьте несколько строк в Java для некоторых примеров.

Тип байтового примитива

Когда мы болтали о двоичном коде, мы немного поговорили о концепции. Ну, группа из восьми битов составляет байт, который Java поддерживает как примитивный тип. Тип byte — это, по сути, просто 8-битное число, которое варьируется от -128 до 127. Как и ожидалось, байты обозначаются ключевым словом byte :

1
byte someByte = 20;

Как всегда, мы можем подтвердить диапазон byte типа, используя следующий фрагмент кода:

1
2
Byte.MAX_VALUE // Prints 127
Byte.MIN_VALUE // Prints -128

По моему опыту, тип byte полезен для чтения и обработки необработанных данных. В целом, однако, мы, вероятно, не будем его использовать, поскольку диапазон потенциальных значений очень мал.

Короткий Примитивный Тип

Тип short — это другой целочисленный тип, но он занимает меньше места, чем тип int. На самом деле, он занимает ровно половину пространства в 16 битах и ​​помечается short ключевым словом:

1
short someNumber = 11;

С точки зрения диапазона, short тип включает в себя только половину битов как целое число, но мы можем подтвердить это как обычно:

1
2
Short.MAX_VALUE // Prints 32767
Short.MIN_VALUE // Prints -32768

Для практических целей short имеет только 65 546 возможных значений. И byte и short обычно используются при нехватке памяти и дискового пространства. В противном случае безопасно использовать int как это тип по умолчанию при объявлении целых чисел.

Длинный примитивный тип

На другом конце спектра long тип примитива. Этот тип представляет чрезвычайно большие целые числа, где мы могли бы хотеть, чтобы значения были даже больше, чем может обеспечить тип int . long тип представляет собой 64-разрядное целое число со знаком, что означает диапазон значений в квинтиллионах.

Естественно, мы обозначаем длинные с ключевым словом long :

1
long someBigNumber = 1013401346173L;

Чтобы продемонстрировать, насколько широк диапазон может иметь 64-битное значение, давайте взглянем на следующий фрагмент кода:

1
2
Long.MAX_VALUE // Prints 9,223,372,036,854,775,807
Long.MIN_VALUE // Prints -9,223,372,036,854,775,808

Возможно, long будет полезен для вычисления расстояния, которое проходит свет в данный период времени. Через одну секунду свет проходит около 300 миллионов метров. Если бы мы написали программу для отслеживания расстояния света в реальном времени, тип int исчезнет примерно через 7 секунд, в то время как long может рассчитать до 975 лет. Не веришь мне? Проверьте этот Gist, который проходит через весь расчет.

Примитивный тип поплавка

Хотя мы часто используем double который является 64-битным типом чисел с плавающей запятой, Java поддерживает другой тип чисел с плавающей запятой, называемый float . Однако, как и в случае с int , для значений по умолчанию Java по умолчанию double . В любом случае, мы можем обозначить 32-битное число с плавающей запятой, используя ключевое слово float :

1
float someNumber = 11.4f;

Чтобы получить представление о диапазоне float , давайте снова воспользуемся нашим приемом:

1
2
Float.MAX_VALUE // Prints 3.4028235E38
Float.MIN_VALUE // Prints 1.4E-45

Как мы видим, 32 бита действительно уменьшают наш диапазон и точность. Если мы хотим использовать десятичное значение с меньшей точностью, чем double при использовании половины пробела, тип с float является опцией.

Булев примитивный тип

Наконец, мы можем охватить boolean тип. Чтобы объявить boolean , мы можем использовать ключевое слово boolean :

1
boolean isBool = true;

Булевы значения немного уникальны, потому что они не представляют числовые значения, как все другие примитивные типы. На самом деле наш маленький MAX_VALUE и MIN_VALUE здесь не сработает. Вместо этого логические значения представляют true или false которые мы могли бы вспомнить из предыдущего урока по логике.

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

Хотите узнать больше?

Как уже упоминалось, эту информацию можно было ранее найти в статье « Примитивные типы и переменные в Java» . Конечно, теперь эту статью гораздо легче читать.

В любом случае, еще раз спасибо за вашу поддержку. Увидимся в следующий раз!

Смотрите оригинальную статью здесь: 8 примитивных типов в Java

Мнения, высказанные участниками Java Code Geeks, являются их собственными.