Java — это типизированный язык, мы уже упоминали об этом ранее, это означает, что каждая переменная должна быть объявлена перед использованием: поэтому мы должны присвоить ей имя и тип.
Что такое тип
Тип — это набор характеристик, которым должно соответствовать любое значение, принимаемое переменной. Например: «быть целым числом», «быть последовательностью символов Юникода» и т. Д.
Примитивные типы в Java
Тип переменной может быть создан разработчиком путем композиции из предопределенного набора типов, обычно называемых примитивными типами.
В Java есть 8 примитивных типов, и каждый из них предназначен для представления определенного типа информации и использования определенного количества памяти.
Кроме того, говоря об объявлении переменных, мы сказали, что «локальные» переменные должны быть инициализированы, чтобы избежать ошибок компиляции, это неверно для переменных экземпляра, для которых для каждого примитивного типа указано значение по умолчанию.
Тип | Кол-во памяти | Представленная информация | Значение по умолчанию |
byte | 8 бит | Переменная представляет значения в диапазоне от -128 до 127(включая крайние значения) | 0 |
short | 16 бит | Целые числа в диапазоне от -32768 до 32767 | |
int | 32 бит | Целые числа в диапазоне от -2147483648 до 2147483647 | 0 |
long | 64 бит | Целые числа в диапазоне от -9223372036854775808 до 9223372036854775807. 0.0L | |
float | 32 бит | Числа с плавающей запятой одинарной. В 32-битной версии, представляемый диапазон должен вычисляться с учетом знакового бита, 23-битной мантиссы и 8-битной экспоненты со значениями от -126 до 127. 0.0f | 0.0f |
double | 64 бит | Числа с плавающей запятой двойной. Точность представления чисел увеличивается за счет увеличения количества используемых битов. | 0.0d |
boolean | не указано, но достаточно одного бита | он служит для представления только двух значений: истина или ложь ( true false). Значение по умолчанию false | false |
char | 16 бит | Он используется для хранения символов кодировки Unicode ) в диапазоне [‘\u0000’, ‘\uffff’](в шестнадцатеричном формате). | \u0000 |
Следует добавить, что каждая переменная объектного типа (т.е. не примитивного типа) по умолчанию инициализируется специальным значением null.
Следует отметить, что сама официальная документация Java сообщает, что, хотя значения по умолчанию гарантированы для всех неинициализированных полей, не инициализировать переменные — плохая практика, и поэтому вам следует избегать этого.
Литералы
Примитивные типы — это элементы, с помощью которых могут быть построены все другие объекты, которые будут использоваться в программах, поэтому их следует рассматривать как специальные типы данных языка. Для этого необходимо использовать определенные методы, чтобы иметь возможность определять значения в коде.
Литералы — это явно заданные значения в коде программы — константы определенного типа, которые находятся в коде в момент запуска..
long и int в Java
Значения для типов int и long могут быть выражены как целые числа с основанием 10, используя обычную позиционную запись:
int number= 42;
или в шестнадцатеричном представлении (Hex, base 16) с использованием суффикса ‘0x’ или двоичном (base 2, из версии 7 java) с использованием суффикса ‘0b’:
int number= 0x2A; // шестнадцатеричный int number= 0b00101010;// двоичный
Эти же литералы могут также использоваться для выражения байтовых и коротких значений, в то время как для выражения длинных значений используется буква ‘L’ (строчный символ также допустим, но не рекомендуется из-за его плохой читаемости, так как его можно спутать с числом ‘1’):
long bigLUE = 4242424242L;
Значение с плавающей запятой Java
Значения нецелочисленного типа могут быть аналогичным образом выражены путем разделения десятичной части символом ‘.’ (точка) и будут считаться типом double, если буква ‘F’ (или ‘f’) не будет отложена.
Литералы double могут оканчиваться буквой «D» (или «d»), если для удобства чтения это считается целесообразным (но не обязательно).
Также допускается так называемая научная запись для чисел с плавающей запятой, которая заключается в использовании буквы E(e), за которой следует число, выражающее степень 10, которая умножается на число, указанное перед ним:
double mille = 1000.0; double milleSci = 1.0e3; float milleFloat = 1000.0f;
Начиная с версии 7 Java, можно использовать символ подчеркивания (‘_’) во всех числовых литералах для повышения их читабельности, например, путем разделения тысяч:
float milleEasy = 1_000.0f;
символ ‘_’ используется только для облегчения чтения и может использоваться только между парами чисел (не как первый или последний символ, не рядом с ‘.’ или другими символами, разрешенными в обозначениях).
Символьные и строковые литералы
Значения символьного типа могут быть выражены с помощью символов Unicode (UTF-16), заключенных в одинарные кавычки, которые в конечном итоге могут быть выражены в форме кодировки с использованием «escape-последовательности Unicode»:
char simbol = 'ñ'; char code = '\u00F1';
Также поддерживаются некоторые специальные представления (известные как escape-последовательности):
Побег | символ |
\b | backspace (назад) |
\t | табуляция |
\n | перевод строки (конец строки) |
\f | перевод страницы (конец страницы / новая страница) |
\r | возврат каретки |
\’ | отображение одинарной кавычки |
\” | отображение двойной кавычки |
\\ | обратная косая черта ( \) |
Строки и числа
В Java, в дополнение к 8 примитивным типам, типы String и Number (и производные) также должны считаться специальными типами данных (обычно называемыми простыми объектами данных), которые каким-то образом действуют как аналог примитивных данных, где есть необходимость использовать объект, а не тип напрямую (разница станет понятнее в следующих уроках).
На данный момент достаточно знать, что переменные типа String- это последовательности, char которые можно инициализировать с помощью кавычек (двойных кавычек):
String author = «admin»;
В то время как типы Integer, Byte, Long, Float и Double(аналоги тех же примитивных типов, записанные первой строчной буквой) могут быть инициализированы теми же литералами, что и для соответствующих собственных типов, но все они по умолчанию инициализируются литералом null (читать null ), если мы явно не присваиваем им значение.
Компилятор почти всегда может автоматически преобразовывать примитивные типы в соответствующие им простые объекты (операция, называемая упаковкой и распаковкой), только некоторые особые случаи являются исключениями.