Что такое integer в java
Перейти к содержимому

Что такое integer в java

  • автор:

Типы byte, short, int, long

Целочисленные числа представлены в языке Java четырьмя типами — byte, short, int и long.

int — основной целочисленный тип, используемый в Java по умолчанию. Любое целое число будет рассматриваться компилятором как число типа int. Используется в качестве счётчика циклов, индексов массивов и индексов символов в строках.

long — целочисленный тип содержащий практически бесконечное количество значений. Используется в случаях, где числа превосходят 2 миллиарда и стандартного int уже не хватает. Используется в повседневной жизни для создания уникальных значений.

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

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

Тип Размер в байтах Размер в битах Возможные значения (от..до) Значение по умолчанию
byte 1 8 -128..127 0
short 2 16 -32,768..32,767 0
int 4 32 -2,147,483,648..2,147,483,647 0
long 8 64 -9,223,372,036,854,775,808..9,223,372,036,854,775,807 0

Пример объявления целочисленных типов:

byte b = 4; short s1 = 7, s2 = 5; int i1 = 56, i2; i2 = 78; long a1 = 456;

Презентацию с видео можно скачать на Patreon .

Что такое integer в java

Класс Integer — это оболочка простого типа int. Объект содержит единственное поле типа int. Кроме того, этот класс обеспечивает несколько методов для преобразования int в String и обратно, а также другие константы и методы полезные при работе с int.

  • static int MAX_VALUE — Самая большая величина типа int
  • static int MIN_VALUE — Минимальная величина типа int
  • static Class TYPE — Объект Класса представляющий простой тип int
  • Integer(int value) — Создает вновь размещенный объект Integer, который создается на основе аргумента
  • Integer(String s) — Создает вновь размещенный объект Integer, который создается на основе строкового аргумента
  • byte byteValue() — Возвращает величину Integer как byte
  • int compareTo(Integer anotherInteger) — Сравнивает два целых числа
  • int compareTo(Object o) — Сравнивает число с другим объектом
  • static Integer decode(String nm) — Переводит строку в целое
  • double doubleValue() — Возвращает величину Integer как double
  • boolean equals(Object obj) — Сравнивает это объект с другим объектом
  • float floatValue() — Возвращает величину Integer как double
  • static Integer getInteger(String nm) — Определяет значение целого системного свойства с определенным именем
  • static Integer getInteger(String nm, int val) — Определяет значение целого системного свойства с определенным именем
  • static Integer getInteger(String nm, Integer val) — Возвращает значение целого системного свойства с определенным именем
  • int hashCode() — Возвращает hashcode для этого обьекта
  • int intValue() — Возвращает величину Integer как int
  • long longValue() — Возвращает величину Integer как long
  • static int parseInt(String s) — Выполняет грамматический разбор аргумента строки как десятичного целого
  • static int parseInt(String s, int radix) — Выполняет грамматический разбор аргумента строки, как целого со знаком в системе счисления определенной во втором аргументе
  • short shortValue() — Возвращает величину Integer как short
  • static String toBinaryString(int i) — Создает представление строки аргумента целого как целое с базой 2
  • static String toHexString(int i) — Создает представление строки аргумента целого как целое с базой 16
  • static String toOctalString(int i) — Создает представление строки аргумента целого как целое с базой 8
  • String toString() — Возвращает строковое представление числа
  • static String toString(int i) — Возвращает новый объект строки с десятичным представлением числа
  • static String toString(int i, int radix) — Возвращает новый объект строки с текстовым значением числа i в заданной системе счисления radix
  • static Integer valueOf(String s, int radix) — Возвращает новый объект Integer инициализированный величиной определенной в строковой переменной s записанной в системе счисления radix

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем — 05.01.2003

Что такое integer в java

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

Итак, рассмотрим систему встроенных базовых типов данных, которая используется для создания переменных в Java. А она представлена следующими типами.

    boolean : хранит значение true или false

boolean isActive = false; boolean isAlive = true;
byte a = 3; byte b = 8;
short a = 3; short b = 8;
int a = 4; int b = 9;
long a = 5; long b = 10;
double x = 8.5; double y = 2.7;
float x = 8.5F; float y = 2.7F;

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

Целые числа

Все целочисленные литералы, например, числа 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);

Кроме собственно символов, которые представляют буквы, цифры, знаки препинания, прочие символы, есть специальные наборы символов, которые называют управляющими последовательностями. Например, самая популярная последовательность — «\n». Она выполняет перенос на следующую строку. Например:

String text = "Hello \nworld"; System.out.println(text);

Результат выполнения данного кода:

Hello world

В данном случае последовательность \n будет сигналом, что необходимо сделать перевод на следующую строку.

Начиная с версии 15 Java поддерживает тестовые блоки (text blocks) — многострочный текст, облеченный в тройные кавычки. Рассмотрим, в чем их практическая польза. Например, выведем большой многострочный текст:

String text = "Вот мысль, которой весь я предан,\n"+ "Итог всего, что ум скопил.\n"+ "Лишь тот, кем бой за жизнь изведан,\n"+ "Жизнь и свободу заслужил."; System.out.println(text);

С помощью операции + мы можем присоединить к одному тексту другой, причем продолжение текста может располагаться на следующей строке. Чтобы при выводе текста происходил перенос на следующую строку, применяется последовательность \n.

Результат выполнения данного кода:

Вот мысль, которой весь я предан, Итог всего, что ум скопил. Лишь тот, кем бой за жизнь изведан, Жизнь и свободу заслужил.

Текстовые блоки, которые появились в JDK15, позволяют упростить написание многострочного текста:

String text = """ Вот мысль, которой весь я предан, Итог всего, что ум скопил. Лишь тот, кем бой за жизнь изведан, Жизнь и свободу заслужил. """; System.out.println(text);

Весь текстовый блок оборачивается в тройные кавычки, при этом не надо использовать соединение строк или последовательность \n для их переноса. Результат выполнения программы будет тем же, что и в примере выше.

Руководство по классу Java Integer с примерами

Класс Integer является контейнером для типа данных int . Этот класс включает в себя методы преобразования значений из строки в объект Integer . Данное руководство содержит полную информацию о том, как использовать класс Integer в Java , его атрибуты и методы .

Синтаксис класса Integer

public final class Integer extends Number implements Comparable

Совместимость с версиями JDK

Необходима JDK версии 1.0

Основы класса Integer

Поскольку класс Integer имеет широкую функциональность, мы решили разделить данное руководство на разделы.

Как создать экземпляр класса Integer

Есть два способа создать экземпляр класса Integer . Первый способ – использовать ключевое слово new :

Integer secondInteger = new Integer(100);

Второй способ создать — использовать функцию автоупаковки ( autoboxing ) языка Java , которая конвертирует примитивный тип данных в соответствующий класс-обёртку:

Integer sampleInteger = 100;

Тест на равенство объектов Integer

Объекты Integer являются обёрткой для примитивного типа int . Поскольку они являются объектами, то оператор == не будет работать. Рассмотрим приведенный ниже отрывок кода:

Integer firstInteger = 100; Integer secondInteger = new Integer(100); System.out.println(firstInteger==secondInteger);

Поскольку мы имеем дело с объектами Integer , оператор == больше не применим. Как же провести сравнение двух Java объектов Integer ? Рассмотрим приведенный ниже отрывок кода, демонстрирующий это:

Java-программа для проверки объектов Integer на равенство

package com.javatutorialhq.java.examples; /* * Пример программы для проверки объектов Integer на равенство */ public class IntegerTestEquality < public static void main(String[] args) < // создаём объекты Integer Integer firstInteger = 100; Integer secondInteger = new Integer(100); // проверка на равенство System.out.println(firstInteger.equals(secondInteger)); >>

Максимальное и минимальное значения Integer

Чтобы найти максимальное и минимальное значения Integer , мы обратимся к двум его полям. Максимальное значение объекта Integer ( 2147483647 ) может быть найдено с помощью вызова Integer.MAX_VALUE , а минимальное значение Integer (- 2147483648 ) – через обращение к Integer.MIN_VALUE .

Рассмотрим метод parseInt(String s) , который принимает строку в качестве аргумента и конвертирует её в объект Integer . Если мы передадим строковое значение, которое имеет целочисленный эквивалент, превышающее максимальное значение в Integer.MAX_VALUE ? Грубым примером такого сценария может служить приведенный ниже код:

Integer intValue = Integer.parseInt("2147483648");

Мы передали в метод parseInt аргумент, который на 1 больше максимального значения. Поэтому если мы попытаемся выполнить этот отрывок кода, компилятор выдаст исключение NumberFormatException :

Exception in thread "main" java.lang.NumberFormatException: For input string: "2147483648" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:587) at java.lang.Integer.parseInt(Integer.java:615) at com.javatutorialhq.java.examples.IntegerTestEquality.main(IntegerTestEquality.java:12)

Как использовать статичные методы класса Integer

Большинство методов класса Integer статичные, поэтому имеет смысл разобраться, как получить доступ к ним. Не статичные методы используются так:

Integer intValue = Integer.parseInt("2147"); System.out.println(intValue.byteValue());

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

System.out.println(Integer.max(1243, 1245));

Нестатические методы вызываются через переменная.метод. Статичные вызываются через Integer.метод(аргументы. ).

Поля объекта Integer

Модификатор Тип Атрибут Описание
static Int MAX_VALUE Константа, являющаяся максимальным значением данных типа int, равная 2^31-1.
static Int MIN_VALUE Константа, являющаяся минимальным значением данных типа int, равная -2^31.
static Int SIZE Число битов, использованное для представления значения типа int в двоичной форме.
static Class

TYPE Экземпляр класса, представляющий примитивный тип int.

Конструктор класса Integer

Синтаксис Описание
Integer(int value) Создает новый объект Integer, который представляет указанное целочисленное значение.
Integer(String s) Это создает новый объект Integer, который представляет целочисленное значение, указанное строковым параметром конструктора.

Примеры использования методов класса Integer

Модификатор Возвращаемый тип Метод Описание
static Int bitCount(int i) Этот метод возвращает целочисленное значение, которое соответствует количеству единиц в двоичном представлении числа-аргумента метода.
byte byteValue() Возвращает значение объекта Integer в виде типа byte. Этот метод переопределяет метод byteValue() класса Number.
static Int compare(int x, int y) Метод просто возвращает целочисленное представление результата сравнения двух целочисленных аргументов.
Int compareTo(Integer anotherInteger) Возвращает целочисленное значение результата сравнения аргумента метода и объекта Integer.
static Integer decode(String nm) Возвращает декодированное значение строкового аргумента в объект Integer.
Double doubleValue() Возвращает эквивалент объекта Integer типа double ( java double to integer ). Метод doubleValue() унаследован из класса Number.
boolean equals(Object obj) Возвращает результат сравнения объекта Integer и объекта-аргумента типа Object. Этот метод переопределяет метод equals класса Object.
Float floatValue() Возвращает эквивалент объекта Integer в типе float. Метод floatValue унаследован из класса Number.
static Integer getInteger(String nm) Возвращает значение свойства, указанного в качестве аргумента, в объекте Integer.
static Integer getInteger(String nm, int val) Определяет целочисленное значение свойства, указанного в строковом параметре. Если свойство не найдено, возвращает объект Integer со значением, указанным во втором параметре.
static Integer getInteger(String nm, Integer val) Возвращает целочисленное значение свойства, указанного в строковом параметре. Если свойство не найдено, возвращает объект Integer, указанный во втором параметре.
Int hashCode() Возвращает хэш-код объекта Integer.
static Int highestOneBit(int i) Определяет позицию старшего бита. Возвращает значение, в котором установлен только этот бит. Если ни один из битов не установлен, возвращает 0.
Int intValue() Возвращает целочисленный эквивалент объекта Integer. Метод унаследован из класса Number.
Long longValue() Возвращает значение объекта Integer как тип long.
static Int lowestOneBit(int i) Возвращает целое число, получающееся, если оставить только младшую (крайнюю правую) единицу в двоичном представлении числа-аргумента.
static Int numberOfLeadingZeros(int i) Возвращает количества нулей слева в двоичном представлении числа-аргумента.
static Int numberOfTrailingZeros(int i) Возвращает количества нулей справа в двоичном представлении числа-аргумента.
static Int parseInt(String s) Преобразует строку-аргумент в десятичное число со знаком.
static Int parseInt(String s, int radix) Преобразует строку-аргумент в целом число со знаком в системе исчисления, указанной во втором аргументе.
static Int reverse(int i) Возвращает число, получаемое в результате перестановки битов числа-аргумента в обратном порядке.
static Int reverseBytes(int i) Возвращает число, получаемое в результате перестановки байтов числа-аргумента в обратном порядке.
static Int rotateLeft(int i, int distance) Возвращает число, полученное в результате сдвига битов числа-аргумента на указанное количество позиций влево. (Биты, вышедшие за пределы слева, возвращаются в правую часть).
static Int rotateRight(int i, int distance) Возвращает число, полученное в результате сдвига битов числа-аргумента на указанное количество позиций вправо. (Биты, вышедшие за пределы справа, возвращаются в левую часть).
Short shortValue() Возвращает эквивалент объекта Integer в типе short. Этот метод переопределяет метод shortValue класса Number.
static int signum(int i) Возвращает результат функции signum от указанного целого числа.
static String toBinaryString(int i) Возвращает строковый эквивалент двоичного представления числа-аргумента.
static String toHexString(int i) Возвращает строковое представление целочисленного аргумента в виде шестнадцатеричного числа без знака.
static String toOctalString(int i) Возвращает строковое представление целочисленного аргумента в виде восьмеричного числа без знака.
String toString() Возвращает объект String, представляющий значение объекта Integer.
static String toString(int i) Возвращает объект String, представляющий значение целочисленного аргумента.
static String toString(int i, int radix) Возвращает строковый эквивалент целого десятичного числа-аргумента в указанной системе исчисления.
static Integer valueOf(int i) Возвращает экземпляр объекта Integer, представляющий указанное целое число.
static Integer valueOf(String s) Возвращает экземпляр объекта Integer, содержащий значение, указанное в строке-аргументе.
static Integer valueOf(String s, int radix) Возвращает экземпляр объекта Integer, содержащий значение, передаваемое в строке-аргументе в системе исчисления, указанной во втором параметре.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *