Типы данных

Одной из основных особенностей Java является то, что данный язык является строго типизированным. А это значит, что каждая переменная и константа представляет определенный тип и данный тип строго определен. Тип данных определяет диапазон значений, которые может хранить переменная или константа. Рассмотрим систему встроенных базовых типов данных, которая используется для создания переменных в Java. А она представлена следующими типами:

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

Эксперты придумали, как обнаружить вредоносный трафик в TLS ...

 

Целые числа

Все целочисленные литералы, например, 10,4, -5, воспринимаются как значения типа int, однако мы можем присваивать целочисленные литералы другим целочисленным типам: byte, long, short. В этом случае Java автоматически осуществляет соответствующие преобразования:

  • byte a = 1;
  • short b = 2;
  • long c = 2121;
Однако если мы захотим присвоить переменной типа long очень большое число, которое выходит за пределы допустимых значений для типа int, то мы столкнемся с ошибкой во время компиляции:
  • long num = 2147483649;
Здесь число 2147483649 является допустимым для типа long, но выходит за предельные значения для тпа int. И так как все целочисленные значения по умолчанию расцениваются как значения типа int, то компилятор укажет нам на ошибку. Чтобы решить проблему, надо добавить к числу суффикс l или L, который указывает, что число представляет тип long:
  • long num = 2147483649L;

Как правило, значения для целочисленных переменных задаются в десятичной системе счисления, однако мы можем применять и другие системы исчисления. Например:

  • int num111 = 0x6F; // 16-тиричная система, число 111
  • int num8 = 010; // 8-ричная система, число 8
  • int num13 = 0b1101; // 2-ичная система, число 13
Для задания шестнадцатеричного значения после символов 0x указывается число в шестнадцатеричном формате. Таким же образом восьмеричное значение указывается после символа 0, а двоичное значение — после символов 0b.
 
Также целые числа поддерживают разделение разрядов числа с помощью знака подчеркивания:
  • int x = 123_456;
  • int y = 234_567__789;
  • System.out.println(x);  // 123456
  • System.out.println(y);  // 234567789
 
 
Числа с плавающей точкой
 
При присвоении переменной типа float дробного литерала с плавающей точкой, например, 3.1, 4.5 и т.д., Java автоматически рассматривает этот литерал как значение типа double. И чтобы указать, что данное значение должно рассматриваться как float, нам надо использовать суффикс f:
  • float fl = 30.6f;
  • double db = 30.6;
И хотя в данном случае обе переменных имеют практически одно значения, но эти значения будут по-разному рассматриваться и будут занимать разное место в памяти.
 
 
Символы и строки
 
В качестве значения переменная символьного типа получает одиночный символ, заключенный в ординарные кавычки: char ch=’e’. Кроме того, переменной символьного типа также можно присвоить целочисленное значение от 0 до 65535. В этом случае переменная опять же будет хранить символ, а целочисленное значение будет указывать на номер символа в таблице символов Unicode (UTF-16). Например:
  • char ch=102; // символ ‘f’
  • System.out.println(ch);
Еще одной формой задания символьных переменных является шестнадцатеричная форма: переменная получает значение в шестнадцатеричной форме, которое следует после символов «\u». Например, char ch=’\u0066′; опять же будет хранить символ ‘f’.
 
Символьные переменные не стоит путать со строковыми, ‘a’ не идентично «a». Строковые переменные представляют объект String, который в отличие от char или int не является примитивным типов в Java:
  • String hello = «Hello…»;
  • System.out.println(hello);

Добавить комментарий