Элементарные типы

Java определяет восемь элементарных типов данных: byte, short, int, long, char, float, double и boolean.

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

  • Целочисленные. Эта группа включает в себя типы byte, short, int и long, которые представляют точные целые числа со знаком.
  • Числа с плавающей точкой. Эта группа включает в себя типы float и double, которые представляют числа, определенные с точностью до определенного десятичного знака.
  • Символы. Эта группа включает в себя тип char, которая представляет символы символьного набора, такие как буквы и цифры.
  • Булевские значения. Эта группа включает в себя тип boolean — специальный тип, предназначенный для представления значений типа истинно/ложно.

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

Элементарные типы представляют одиночные значения, а не сложные объекты. Хотя во всех других отношениях Java — полностью объектно-ориентированный язык, элементарные типы данных таковыми не являются. Они аналогичны простым типам, которые можно встретить в большинстве других не объектно-ориентированных языков. Эта особенность обусловлена стремлением обеспечить максимальную эффективность. Превращение элементарных типов в объекты привело бы к слишком большому снижению производительности.

Элементарные типы определены так, чтобы они обладали явной областью допустимых значений и математически строгим поведением. Языки вроде С и С++ допускают варьирование размеров целочисленных переменных в зависимости от требований среды выполнения. Однако Java отличается в этом отношении. В связи с требованием переносимости, предъявляемым к Java-программам, все типы данных обладают строго определенной областью допустимых значений. Например, независимо от конкретной платформы, значения типа int всегда являются 32-битными. Это позволяет создавать программы, которые гарантированно будут выполняться в любой машинной архитектуре без специального переноса. Хотя в некоторых средах строгое указание размера целых чисел может приводить к незначительному снижению производительности, оно абсолютно необходимо для обеспечения переносимости программ.

Рассмотрим каждый и типов данных.