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

Его диапазон составляет от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 (от -263 до 263–1).

Все целые числа в диапазоне long называются целочисленными литералами типа long. Целочисленный литерал типа long всегда заканчивается буквой L или буквой l в нижнем регистре.

Ниже приведены примеры использования целочисленного литерала типа long:

long  num1 = 0L; 
long  num2 = 4L; 
long  mum3  = -3; 
long  num4 = 8; 
long  num5 = -1L;

длинные литералы

Целочисленные литералы типа long могут быть выражены в восьмеричном, шестнадцатеричном и двоичном форматах. Например,

long  num1;
num1 = 25L;       // Decimal  format 
num1 = 031L;      // Octal format
num1 = 0X19L;     // Hexadecimal  format 
num1 = 0b11001L;  // Binary   format

Когда литерал long присваивается переменной типа long, компилятор Java проверяет присваиваемое значение и убеждается, что оно находится в диапазоне данных типа long; в противном случае он генерирует ошибку времени компиляции.

Примечание

Присвоение от int к long допустимо, потому что все значения, которые могут быть сохранены в переменной int, могут быть сохранены в переменной long. Однако обратное неверно.

Вы не можете просто присвоить значение, хранящееся в переменной long, переменной int.

Существует вероятность переполнения значения.

Чтобы присвоить значение длинной переменной переменной типа int, используйте «приведение» в Java, например:

num1 = (int)num2;

В Java есть класс Long, который определяет две константы для представления максимального и минимального значений типа данных long: Long.MAX_VALUE и Long.MIN_VALUE.

long  max = Long.MAX_VALUE;
long  min = Long.MIN_VALUE;