Используется, когда результат вычислений над целыми числами может выйти за пределы диапазона данных типа 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;