Spec-Zone.ru › OpenJDK 25

Класс Long

java.lang.Object
java.lang.Number
java.lang.Long
Все реализуемые интерфейсы:
Serializable, Comparable<Long>, Constable, ConstantDesc
public final class Long extends Number implements Comparable<Long>, Constable, ConstantDesc
Класс Long является классом-оболочкой для значений примитивного типа long. Объект типа Long содержит одно поле типа long.

Кроме того, этот класс предоставляет несколько методов для преобразования long в String и String в long, а также другие константы и методы, полезные при работе с long.

Это класс, основанный на значениях; программистам следует считать экземпляры, которые равны, взаимозаменяемыми и не использовать экземпляры для синхронизации, иначе возможно непредсказуемое поведение. Например, в одном из будущих выпусков синхронизация может завершиться неудачей.

Примечание по реализации: реализации методов «побитовых манипуляций» (например, highestOneBit и numberOfTrailingZeros) основаны на материалах из книг Генри С. Уоррена-младшего Hacker's Delight (Addison Wesley, 2002) и Hacker's Delight, Second Edition (Pearson Education, 2013).

Начиная с:
1.0
См. также:
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
static final int BYTES
Количество байтов, используемых для представления значения long в двоичной форме с дополнительным кодом.
static final long MAX_VALUE
Константа, содержащая максимальное значение, которое может иметь long: 263-1.
static final long MIN_VALUE
Константа, содержащая минимальное значение, которое может иметь long: -263.
static final int SIZE
Количество битов, используемых для представления значения long в двоичной форме с дополнительным кодом.
static final Class<Long> TYPE
Экземпляр Class, представляющий примитивный тип long.

Краткое описание конструкторов

Конструктор Описание
Long(long value)
Устарел.
Использование этого конструктора редко бывает уместным.
Long(String s)
Устарел.
Использование этого конструктора редко бывает уместным.

Краткое описание методов

Модификатор и тип Метод Описание
static int bitCount(long i)
Возвращает количество единичных битов в двоичном представлении указанного значения long с дополнительным кодом.
byte byteValue()
Возвращает значение этого Long как byte после сужающего преобразования примитивного типа.
static int compare(long x, long y)
Сравнивает численно два значения long.
int compareTo(Long anotherLong)
Сравнивает численно два объекта Long.
static int compareUnsigned(long x, long y)
Сравнивает численно два значения long, рассматривая их как беззнаковые.
static long compress(long i, long mask)
Возвращает значение, полученное сжатием битов указанного значения long, i, в соответствии с заданной битовой маской.
static Long decode(String nm)
Декодирует String в Long.
Optional<Long> describeConstable()
Возвращает Optional, содержащий номинальный дескриптор этого экземпляра, которым является сам экземпляр.
static long divideUnsigned(long dividend, long divisor)
Возвращает беззнаковое частное от деления первого аргумента на второй, при этом каждый аргумент и результат интерпретируются как беззнаковые значения.
double doubleValue()
Возвращает значение этого Long как double после расширяющего преобразования примитивного типа.
boolean equals(Object obj)
Сравнивает этот объект с указанным объектом.
static long expand(long i, long mask)
Возвращает значение, полученное расширением битов указанного значения long, i, в соответствии с заданной битовой маской.
float floatValue()
Возвращает значение этого Long как float после расширяющего преобразования примитивного типа.
static Long getLong(String nm)
Определяет значение long системного свойства с указанным именем.
static Long getLong(String nm, long val)
Определяет значение long системного свойства с указанным именем.
static Long getLong(String nm, Long val)
Возвращает значение long системного свойства с указанным именем.
int hashCode()
Возвращает хеш-код этого Long.
static int hashCode(long value)
Возвращает хеш-код значения long; совместим с Long.hashCode().
static long highestOneBit(long i)
Возвращает значение long, содержащее не более одного единичного бита в позиции старшего («самого левого») единичного бита указанного значения long.
int intValue()
Возвращает значение этого Long как int после сужающего преобразования примитивного типа.
long longValue()
Возвращает значение этого Long как значение long.
static long lowestOneBit(long i)
Возвращает значение long, содержащее не более одного единичного бита в позиции младшего («самого правого») единичного бита указанного значения long.
static long max(long a, long b)
Возвращает большее из двух значений long, как если бы был вызван метод Math.max.
static long min(long a, long b)
Возвращает меньшее из двух значений long, как если бы был вызван метод Math.min.
static int numberOfLeadingZeros(long i)
Возвращает количество нулевых битов перед старшим («самым левым») единичным битом в двоичном представлении указанного значения long с дополнительным кодом.
static int numberOfTrailingZeros(long i)
Возвращает количество нулевых битов после младшего («самого правого») единичного бита в двоичном представлении указанного значения long с дополнительным кодом.
static long parseLong(CharSequence s, int beginIndex, int endIndex, int radix)
Разбирает аргумент CharSequence как знаковое значение long в указанной radix, начиная с указанной beginIndex и до endIndex - 1.
static long parseLong(String s)
Разбирает строковый аргумент как знаковое десятичное значение long.
static long parseLong(String s, int radix)
Разбирает строковый аргумент как знаковое значение long в системе счисления, указанной вторым аргументом.
static long parseUnsignedLong(CharSequence s, int beginIndex, int endIndex, int radix)
Разбирает аргумент CharSequence как беззнаковое значение long в указанной radix, начиная с указанной beginIndex и до endIndex - 1.
static long parseUnsignedLong(String s)
Разбирает строковый аргумент как беззнаковое десятичное значение long.
static long parseUnsignedLong(String s, int radix)
Разбирает строковый аргумент как беззнаковое значение long в системе счисления, указанной вторым аргументом.
static long remainderUnsigned(long dividend, long divisor)
Возвращает беззнаковый остаток от деления первого аргумента на второй, при этом каждый аргумент и результат интерпретируются как беззнаковые значения.
Long resolveConstantDesc(MethodHandles.Lookup lookup)
Разрешает этот экземпляр как ConstantDesc; результатом является сам экземпляр.
static long reverse(long i)
Возвращает значение, полученное обращением порядка битов в двоичном представлении указанного значения long с дополнительным кодом.
static long reverseBytes(long i)
Возвращает значение, полученное обращением порядка байтов в представлении указанного значения long с дополнительным кодом.
static long rotateLeft(long i, int distance)
Возвращает значение, полученное циклическим сдвигом влево двоичного представления указанного значения long с дополнительным кодом на заданное число битов.
static long rotateRight(long i, int distance)
Возвращает значение, полученное циклическим сдвигом вправо двоичного представления указанного значения long с дополнительным кодом на заданное число битов.
short shortValue()
Возвращает значение этого Long как short после сужающего преобразования примитивного типа.
static int signum(long i)
Возвращает функцию знака указанного значения long.
static long sum(long a, long b)
Складывает два значения long, как оператор +.
static String toBinaryString(long i)
Возвращает строковое представление аргумента long в виде беззнакового целого числа в системе счисления с основанием 2.
static String toHexString(long i)
Возвращает строковое представление аргумента long в виде беззнакового целого числа в системе счисления с основанием 16.
static String toOctalString(long i)
Возвращает строковое представление аргумента long в виде беззнакового целого числа в системе счисления с основанием 8.
String toString()
Возвращает объект String, представляющий значение этого объекта Long.
static String toString(long i)
Возвращает объект String, представляющий указанное значение long.
static String toString(long i, int radix)
Возвращает строковое представление первого аргумента в системе счисления, указанной вторым аргументом.
static String toUnsignedString(long i)
Возвращает строковое представление аргумента в виде беззнакового десятичного значения.
static String toUnsignedString(long i, int radix)
Возвращает строковое представление первого аргумента как беззнакового целого числа в системе счисления, указанной вторым аргументом.
static Long valueOf(long l)
Возвращает экземпляр Long, представляющий указанное значение long.
static Long valueOf(String s)
Возвращает объект Long, содержащий значение указанного String.
static Long valueOf(String s, int radix)
Возвращает объект Long, содержащий значение, извлеченное из указанного String при разборе с использованием системы счисления, заданной вторым аргументом.

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Подробное описание полей

MIN_VALUE

@Native public static final long MIN_VALUE
Константа, содержащая минимальное значение, которое может иметь long: -263.
См. также:
  • Значения констант полей

MAX_VALUE

@Native public static final long MAX_VALUE
Константа, содержащая максимальное значение, которое может иметь long: 263-1.
См. также:
  • Значения констант полей

TYPE

public static final Class<Long> TYPE
Экземпляр Class, представляющий примитивный тип long.
Начиная с:
1.1

SIZE

@Native public static final int SIZE
Количество битов, используемых для представления значения long в двоичном формате с дополнением до двух.
Начиная с:
1.5
См. также:
  • Значения констант полей

BYTES

public static final int BYTES
Количество байтов, используемых для представления значения long в двоичном формате с дополнением до двух.
Начиная с:
1.8
См. также:
  • Значения констант полей

Подробное описание конструкторов

Long

@Deprecated(since="9") public Long(long value)
Устарело.
Использование этого конструктора редко бывает целесообразным. Обычно лучше выбрать статическую фабрику valueOf(long), поскольку она, вероятно, обеспечит значительно более высокую эффективность использования памяти и быстродействие.
Создает вновь выделенный объект Long, представляющий указанный аргумент long.
Параметры:
value — значение, которое будет представлено объектом Long.

Long

@Deprecated(since="9") public Long(String s) throws NumberFormatException
Устарело.
Использование этого конструктора редко бывает целесообразным. Используйте parseLong(String) для преобразования строки в примитив long или valueOf(String) для преобразования строки в объект Long.
Создает вновь выделенный объект Long, представляющий значение long, указанное параметром String. Строка преобразуется в значение long точно так же, как это делает метод parseLong с основанием системы счисления 10.
Параметры:
s — значение String, которое нужно преобразовать в Long.
Исключения:
NumberFormatException — если значение String не содержит разбираемого значения long.

Подробное описание методов

toString

public static String toString(long i, int radix)
Возвращает строковое представление первого аргумента в системе счисления, основание которой указано вторым аргументом.

Если основание системы счисления меньше Character.MIN_RADIX или больше Character.MAX_RADIX, вместо него используется основание 10.

Если первый аргумент отрицателен, первым символом результата будет знак минус ASCII '-' ('\u002d'). Если первый аргумент неотрицателен, знак в результате не отображается.

Остальные символы результата представляют модуль первого аргумента. Если модуль равен нулю, он представляется одним символом нуля '0' ('\u0030'); в противном случае первый символ представления модуля не будет символом нуля. В качестве цифр используются следующие символы ASCII:

0123456789abcdefghijklmnopqrstuvwxyz
Это символы от '\u0030' до '\u0039' и от '\u0061' до '\u007a'. Если radix равно N, то первые N из этих символов используются в показанном порядке как цифры системы счисления с основанием N. Так, цифрами шестнадцатеричной системы счисления (с основанием 16) являются 0123456789abcdef. Если нужны заглавные буквы, к результату можно применить метод String.toUpperCase():
Long.toString(n, 16).toUpperCase()
Параметры:
i — значение long, которое нужно преобразовать в строку.
radix — основание системы счисления для строкового представления.
Возвращает:
строковое представление аргумента в указанной системе счисления.
См. также:
  • Character.MAX_RADIX
  • Character.MIN_RADIX

toUnsignedString

public static String toUnsignedString(long i, int radix)
Возвращает строковое представление первого аргумента как беззнакового целого числа в системе счисления, основание которой указано вторым аргументом.

Если основание системы счисления меньше Character.MIN_RADIX или больше Character.MAX_RADIX, вместо него используется основание 10.

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

Если модуль равен нулю, он представляется одним символом нуля '0' ('\u0030'); в противном случае первый символ представления модуля не будет символом нуля.

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

Параметры:
i — целое число, которое нужно преобразовать в беззнаковую строку.
radix — основание системы счисления для строкового представления.
Возвращает:
беззнаковое строковое представление аргумента в указанной системе счисления.
Начиная с:
1.8
См. также:
  • toString(long, int)

toHexString

public static String toHexString(long i)
Возвращает строковое представление аргумента long как беззнакового целого числа в системе счисления с основанием 16.

Беззнаковое значение long равно аргументу плюс 264, если аргумент отрицательный; в противном случае оно равно аргументу. Это значение преобразуется в строку из цифр ASCII в шестнадцатеричной системе счисления (с основанием 16) без лишних ведущих 0.

Значение аргумента можно восстановить из возвращенной строки s, вызвав Long.parseUnsignedLong(s, 16).

Если беззнаковый модуль равен нулю, он представляется одним символом нуля '0' ('\u0030'); в противном случае первый символ представления беззнакового модуля не будет символом нуля. В качестве шестнадцатеричных цифр используются следующие символы:

0123456789abcdef
Это символы от '\u0030' до '\u0039' и от '\u0061' до '\u0066'. Если нужны заглавные буквы, к результату можно применить метод String.toUpperCase():
Long.toHexString(n).toUpperCase()
Примечание к API:
Класс HexFormat предоставляет средства форматирования и разбора массивов байтов и примитивных значений для получения строки или добавления в Appendable. HexFormat форматирует и разбирает шестнадцатеричные символы в верхнем или нижнем регистре, добавляя ведущие нули; для массивов байтов также включает разделитель, префикс и суффикс для каждого байта.
Параметры:
i — значение long, которое нужно преобразовать в строку.
Возвращает:
строковое представление беззнакового значения long, представленного аргументом, в шестнадцатеричной системе счисления (с основанием 16).
Начиная с:
1.0.2
См. также:
  • HexFormat
  • parseUnsignedLong(String, int)
  • toUnsignedString(long, int)

toOctalString

public static String toOctalString(long i)
Возвращает строковое представление аргумента long как беззнакового целого числа в системе счисления с основанием 8.

Беззнаковое значение long равно аргументу плюс 264, если аргумент отрицательный; в противном случае оно равно аргументу. Это значение преобразуется в строку из цифр ASCII в восьмеричной системе счисления (с основанием 8) без лишних ведущих 0.

Значение аргумента можно восстановить из возвращенной строки s, вызвав Long.parseUnsignedLong(s, 8).

Если беззнаковый модуль равен нулю, он представляется одним символом нуля '0' ('\u0030'); в противном случае первый символ представления беззнакового модуля не будет символом нуля. В качестве восьмеричных цифр используются следующие символы:

01234567
Это символы от '\u0030' до '\u0037'.
Параметры:
i — значение long, которое нужно преобразовать в строку.
Возвращает:
строковое представление беззнакового значения long, представленного аргументом, в восьмеричной системе счисления (с основанием 8).
Начиная с:
1.0.2
См. также:
  • parseUnsignedLong(String, int)
  • toUnsignedString(long, int)

toBinaryString

public static String toBinaryString(long i)
Возвращает строковое представление аргумента long как беззнакового целого числа в системе счисления с основанием 2.

Беззнаковое значение long равно аргументу плюс 264, если аргумент отрицательный; в противном случае оно равно аргументу. Это значение преобразуется в строку из цифр ASCII в двоичной системе счисления (с основанием 2) без лишних ведущих 0.

Значение аргумента можно восстановить из возвращенной строки s, вызвав Long.parseUnsignedLong(s, 2).

Если беззнаковый модуль равен нулю, он представляется одним символом нуля '0' ('\u0030'); в противном случае первый символ представления беззнакового модуля не будет символом нуля. В качестве двоичных цифр используются символы '0' ('\u0030') и '1' ('\u0031').

Параметры:
i — значение long, которое нужно преобразовать в строку.
Возвращает:
строковое представление беззнакового значения long, представленного аргументом, в двоичной системе счисления (с основанием 2).
Начиная с:
1.0.2
См. также:
  • parseUnsignedLong(String, int)
  • toUnsignedString(long, int)

toString

public static String toString(long i)
Возвращает объект String, представляющий указанное значение long. Аргумент преобразуется в знаковое десятичное представление и возвращается в виде строки точно так же, как если бы аргумент и основание 10 были переданы в метод toString(long, int).
Параметры:
i — значение long, которое нужно преобразовать.
Возвращает:
строковое представление аргумента в десятичной системе счисления.

toUnsignedString

public static String toUnsignedString(long i)
Возвращает строковое представление аргумента как беззнакового десятичного значения. Аргумент преобразуется в беззнаковое десятичное представление и возвращается в виде строки точно так же, как если бы аргумент и основание 10 были переданы в метод toUnsignedString(long, int).
Параметры:
i — целое число, которое нужно преобразовать в беззнаковую строку.
Возвращает:
беззнаковое строковое представление аргумента.
Начиная с:
1.8
См. также:
  • toUnsignedString(long, int)

parseLong

public static long parseLong(String s, int radix) throws NumberFormatException
Разбирает строковый аргумент как знаковое значение long в системе счисления, основание которой указано вторым аргументом. Все символы строки должны быть цифрами указанной системы счисления (определяется тем, возвращает ли Character.digit(char, int) неотрицательное значение), за исключением первого символа, которым может быть знак минус ASCII '-' ('\u002D'), обозначающий отрицательное значение, или знак плюс ASCII '+' ('\u002B'), обозначающий положительное значение. Возвращается полученное значение long.

Обратите внимание: символ L ('\u004C') и символ l ('\u006C') не могут стоять в конце строки в качестве обозначения типа, как это допускается в исходном коде на языке программирования Java; однако L или l могут использоваться как цифры в системе счисления с основанием не менее 22.

Исключение типа NumberFormatException выбрасывается в любом из следующих случаев:

  • Первый аргумент равен null или является строкой нулевой длины.
  • Значение radix меньше Character.MIN_RADIX или больше Character.MAX_RADIX.
  • Какой-либо символ строки не является цифрой указанной системы счисления; исключение составляет первый символ, который может быть знаком минус '-' ('\u002d') или знаком плюс '+' ('\u002B'), если длина строки больше 1.
  • Значение, представленное строкой, не является значением типа long.

Примеры:

parseLong("0", 10) returns 0L
parseLong("473", 10) returns 473L
parseLong("+42", 10) returns 42L
parseLong("-0", 10) returns 0L
parseLong("-FF", 16) returns -255L
parseLong("1100110", 2) returns 102L
parseLong("99", 8) throws a NumberFormatException
parseLong("Hazelnut", 10) throws a NumberFormatException
parseLong("Hazelnut", 36) returns 1356099454469L
Параметры:
s — значение String, содержащее разбираемое представление long.
radix — основание системы счисления для разбора s.
Возвращает:
значение long, представленное строковым аргументом в указанной системе счисления.
Исключения:
NumberFormatException — если строка не содержит разбираемого значения long.

parseLong

public static long parseLong(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException
Разбирает аргумент CharSequence как знаковое значение long в указанной системе счисления radix, начиная с указанного индекса beginIndex и заканчивая endIndex - 1.

Метод не предпринимает действий для защиты от изменения CharSequence во время разбора.

Параметры:
s — значение CharSequence, содержащее разбираемое представление long
beginIndex — начальный индекс включительно.
endIndex — конечный индекс исключительно.
radix — основание системы счисления для разбора s.
Возвращает:
знаковое значение long, представленное подпоследовательностью в указанной системе счисления.
Исключения:
NullPointerException — если s равно null.
IndexOutOfBoundsException — если beginIndex отрицательно, или если beginIndex больше endIndex, или если endIndex больше s.length().
NumberFormatException — если значение CharSequence не содержит разбираемого значения long в указанной системе счисления radix или если radix меньше Character.MIN_RADIX либо больше Character.MAX_RADIX.
Начиная с:
9

parseLong

public static long parseLong(String s) throws NumberFormatException
Разбирает строковый аргумент как знаковое десятичное значение long. Все символы строки должны быть десятичными цифрами, за исключением первого символа, которым может быть знак минус ASCII '-' (\u002D'), обозначающий отрицательное значение, или знак плюс ASCII '+' ('\u002B'), обозначающий положительное значение. Возвращается полученное значение long — точно так же, как если бы аргумент и основание 10 были переданы в метод parseLong(java.lang.String, int).

Обратите внимание: символ L ('\u004C') и символ l ('\u006C') не могут стоять в конце строки в качестве обозначения типа, как это допускается в исходном коде на языке программирования Java.

Параметры:
s — значение String, содержащее разбираемое представление long
Возвращает:
значение long, представленное аргументом в десятичной системе счисления.
Исключения:
NumberFormatException — если строка не содержит разбираемого значения long.

parseUnsignedLong

public static long parseUnsignedLong(String s, int radix) throws NumberFormatException
Разбирает строковый аргумент как беззнаковое значение long в системе счисления, основание которой указано вторым аргументом. Беззнаковое целое число отображает значения, обычно соответствующие отрицательным числам, в положительные числа, превышающие MAX_VALUE. Все символы строки должны быть цифрами указанной системы счисления (определяется тем, возвращает ли Character.digit(char, int) неотрицательное значение), за исключением первого символа, которым может быть знак плюс ASCII '+' ('\u002B'). Возвращается полученное целое значение.

Исключение типа NumberFormatException выбрасывается в любом из следующих случаев:

  • Первый аргумент равен null или является строкой нулевой длины.
  • Основание системы счисления меньше Character.MIN_RADIX или больше Character.MAX_RADIX.
  • Какой-либо символ строки не является цифрой указанной системы счисления; исключение составляет первый символ, который может быть знаком плюс '+' ('\u002B'), если длина строки больше 1.
  • Значение, представленное строкой, больше наибольшего беззнакового значения long: 264-1.
Параметры:
s — значение String, содержащее разбираемое представление беззнакового целого числа
radix — основание системы счисления для разбора s.
Возвращает:
беззнаковое значение long, представленное строковым аргументом в указанной системе счисления.
Исключения:
NumberFormatException — если значение String не содержит разбираемого значения long.
Начиная с:
1.8

parseUnsignedLong

public static long parseUnsignedLong(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException
Разбирает аргумент CharSequence как беззнаковое значение long в указанной системе счисления radix, начиная с указанного индекса beginIndex и заканчивая endIndex - 1.

Метод не предпринимает действий для защиты от изменения CharSequence во время разбора.

Параметры:
s — значение CharSequence, содержащее разбираемое беззнаковое представление long
beginIndex — начальный индекс включительно.
endIndex — конечный индекс исключительно.
radix — основание системы счисления для разбора s.
Возвращает:
беззнаковое значение long, представленное подпоследовательностью в указанной системе счисления.
Исключения:
NullPointerException — если s равно null.
IndexOutOfBoundsException — если beginIndex отрицательно, или если beginIndex больше endIndex, или если endIndex больше s.length().
NumberFormatException — если значение CharSequence не содержит разбираемого беззнакового значения long в указанной системе счисления radix или если radix меньше Character.MIN_RADIX либо больше Character.MAX_RADIX.
Начиная с:
9

parseUnsignedLong

public static long parseUnsignedLong(String s) throws NumberFormatException
Разбирает строковый аргумент как беззнаковое десятичное значение long. Все символы строки должны быть десятичными цифрами, за исключением первого символа, которым может быть знак плюс ASCII '+' ('\u002B'). Полученное целое значение возвращается точно так же, как если бы аргумент и основание 10 были переданы в метод parseUnsignedLong(java.lang.String, int).
Параметры:
s — значение String, содержащее разбираемое беззнаковое представление long
Возвращает:
беззнаковое значение long, представленное строковым аргументом в десятичной системе счисления
Исключения:
NumberFormatException — если строка не содержит разбираемого беззнакового целого числа.
Начиная с:
1.8

valueOf

public static Long valueOf(String s, int radix) throws NumberFormatException
Возвращает объект Long, содержащий значение, извлеченное из указанного String при разборе с основанием системы счисления, заданным вторым аргументом. Первый аргумент интерпретируется как знаковое значение long в системе счисления с основанием, указанным вторым аргументом, точно так же, как если бы аргументы были переданы в метод parseLong(java.lang.String, int). Результатом является объект Long, представляющий значение long, указанное строкой.

Иными словами, этот метод возвращает объект Long, равный значению выражения:

Long.valueOf(Long.parseLong(s, radix))
Параметры:
s — строка для разбора
radix — основание системы счисления для интерпретации s
Возвращает:
объект Long, содержащий значение, представленное строковым аргументом в указанной системе счисления.
Исключения:
NumberFormatException — если значение String не содержит разбираемого значения long.

valueOf

public static Long valueOf(String s) throws NumberFormatException
Возвращает объект Long, содержащий значение указанного String. Аргумент интерпретируется как знаковое десятичное значение long, точно так же, как если бы он был передан в метод parseLong(java.lang.String). Результатом является объект Long, представляющий целое значение, указанное строкой.

Иными словами, этот метод возвращает объект Long, равный значению выражения:

Long.valueOf(Long.parseLong(s))
Параметры:
s — строка для разбора.
Возвращает:
объект Long, содержащий значение, представленное строковым аргументом.
Исключения:
NumberFormatException — если строку невозможно разобрать как значение long.

valueOf

public static Long valueOf(long l)
Возвращает экземпляр Long, представляющий указанное значение long. Если новый экземпляр Long не требуется, обычно следует предпочесть этот метод конструктору Long(long), поскольку кэширование часто запрашиваемых значений, вероятно, значительно повысит эффективность использования памяти и быстродействие. Этот метод всегда кэширует значения от -128 до 127 включительно и может кэшировать значения за пределами этого диапазона.
Параметры:
l — значение типа long.
Возвращает:
экземпляр Long, представляющий l.
Начиная с:
1.5

decode

public static Long decode(String nm) throws NumberFormatException
Декодирует String в Long. Принимает десятичные, шестнадцатеричные и восьмеричные числа, соответствующие следующей грамматике:
DecodableString:
Signopt DecimalNumeral
Signopt 0x HexDigits
Signopt 0X HexDigits
Signopt # HexDigits
Signopt 0 OctalDigits
Sign:
-
+
DecimalNumeral, HexDigits и OctalDigits определены в разделе 3.10.1 документа Спецификация языка Java, за исключением того, что между цифрами не допускаются символы подчёркивания.

Последовательность символов после необязательного знака и/или спецификатора системы счисления («0x», «0X», «#» или начальный ноль) разбирается методом Long.parseLong с указанной системой счисления (10, 16 или 8). Эта последовательность символов должна представлять положительное значение, иначе будет выброшено исключение NumberFormatException. Результат меняет знак на противоположный, если первый символ указанного String — знак минуса. В String не допускаются пробельные символы.

Параметры:
nm — String для декодирования.
Возвращает:
объект Long, содержащий значение long, представленное nm
Выбрасывает:
NumberFormatException — если String не содержит разбираемое значение long.
Начиная с:
1.2
См. также:
  • parseLong(String, int)

byteValue

public byte byteValue()
Возвращает значение этого Long как byte после сужающего примитивного преобразования.
Переопределяет:
byteValue в классе Number
Возвращает:
числовое значение, представленное этим объектом после преобразования к типу byte.
См. Спецификацию языка Java:
5.1.3 Сужающее примитивное преобразование

shortValue

public short shortValue()
Возвращает значение этого Long как short после сужающего примитивного преобразования.
Переопределяет:
shortValue в классе Number
Возвращает:
числовое значение, представленное этим объектом после преобразования к типу short.
См. Спецификацию языка Java:
5.1.3 Сужающее примитивное преобразование

intValue

public int intValue()
Возвращает значение этого Long как int после сужающего примитивного преобразования.
Указан в:
intValue в классе Number
Возвращает:
числовое значение, представленное этим объектом после преобразования к типу int.
См. Спецификацию языка Java:
5.1.3 Сужающее примитивное преобразование

longValue

public long longValue()
Возвращает значение этого Long как значение типа long.
Указан в:
longValue в классе Number
Возвращает:
числовое значение, представленное этим объектом после преобразования к типу long.

floatValue

public float floatValue()
Возвращает значение этого Long как float после расширяющего примитивного преобразования.
Указан в:
floatValue в классе Number
Возвращает:
числовое значение, представленное этим объектом после преобразования к типу float.
См. Спецификацию языка Java:
5.1.2 Расширяющее примитивное преобразование

doubleValue

public double doubleValue()
Возвращает значение этого Long как double после расширяющего примитивного преобразования.
Указан в:
doubleValue в классе Number
Возвращает:
числовое значение, представленное этим объектом после преобразования к типу double.
См. Спецификацию языка Java:
5.1.2 Расширяющее примитивное преобразование

toString

public String toString()
Возвращает объект String, представляющий значение этого Long. Значение преобразуется в десятичное представление со знаком и возвращается в виде строки — точно так же, как если бы значение long было передано в качестве аргумента методу toString(long).
Переопределяет:
toString в классе Object
Возвращает:
строковое представление значения этого объекта в системе счисления с основанием 10.

hashCode

public int hashCode()
Возвращает хеш-код этого Long. Результат — исключающее ИЛИ двух половин примитивного значения long, хранящегося в этом объекте Long. Иными словами, хеш-код равен значению выражения:
(int)(this.longValue()^(this.longValue()>>>32))
Переопределяет:
hashCode в классе Object
Возвращает:
значение хеш-кода этого объекта.
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

hashCode

public static int hashCode(long value)
Возвращает хеш-код значения long; совместим с Long.hashCode().
Параметры:
value — значение для вычисления хеша
Возвращает:
значение хеш-кода для значения long.
Начиная с:
1.8

equals

public boolean equals(Object obj)
Сравнивает этот объект с указанным объектом. Результат равен true тогда и только тогда, когда аргумент не является null и представляет собой объект Long, содержащий то же значение long, что и этот объект.
Переопределяет:
equals в классе Object
Параметры:
obj — объект для сравнения.
Возвращает:
true, если объекты одинаковы; в противном случае — false.
См. также:
  • Object.hashCode()
  • HashMap

getLong

public static Long getLong(String nm)
Определяет значение long системного свойства с указанным именем.

Первый аргумент рассматривается как имя системного свойства. Доступ к системным свойствам осуществляется с помощью метода System.getProperty(java.lang.String). Затем строковое значение этого свойства интерпретируется как значение long с использованием грамматики, поддерживаемой методом decode, и возвращается объект Long, представляющий это значение.

Если свойства с указанным именем нет, если указанное имя пусто или равно null либо если свойство имеет неправильный числовой формат, возвращается null.

Иными словами, этот метод возвращает объект Long, равный значению:

getLong(nm, null)
Параметры:
nm — имя свойства.
Возвращает:
значение свойства типа Long.
См. также:
  • System.getProperty(java.lang.String)
  • System.getProperty(java.lang.String, java.lang.String)

getLong

public static Long getLong(String nm, long val)
Определяет значение long системного свойства с указанным именем.

Первый аргумент рассматривается как имя системного свойства. Доступ к системным свойствам осуществляется с помощью метода System.getProperty(java.lang.String). Затем строковое значение этого свойства интерпретируется как значение long с использованием грамматики, поддерживаемой методом decode, и возвращается объект Long, представляющий это значение.

Второй аргумент — значение по умолчанию. Возвращается объект Long, представляющий значение второго аргумента, если свойства с указанным именем нет, если свойство имеет неправильный числовой формат либо если указанное имя пусто или равно null.

Иными словами, этот метод возвращает объект Long, равный значению:

getLong(nm, Long.valueOf(val))
однако на практике он может быть реализован, например, следующим образом:
Long result = getLong(nm, null);
return (result == null) ? Long.valueOf(val) : result;
, чтобы избежать ненужного создания объекта Long, если значение по умолчанию не требуется.
Параметры:
nm — имя свойства.
val — значение по умолчанию.
Возвращает:
значение свойства типа Long.
См. также:
  • System.getProperty(java.lang.String)
  • System.getProperty(java.lang.String, java.lang.String)

getLong

public static Long getLong(String nm, Long val)
Возвращает значение long системного свойства с указанным именем. Первый аргумент рассматривается как имя системного свойства. Доступ к системным свойствам осуществляется с помощью метода System.getProperty(java.lang.String). Затем строковое значение этого свойства интерпретируется как значение long согласно методу decode, и возвращается объект Long, представляющий это значение; кратко говоря:
  • Если значение свойства начинается с двух символов ASCII 0x или символа ASCII #, за которым не следует знак минуса, остаток разбирается как шестнадцатеричное целое число точно так же, как методом valueOf(java.lang.String, int) с основанием 16.
  • Если значение свойства начинается с символа ASCII 0, за которым следует другой символ, оно разбирается как восьмеричное целое число точно так же, как методом valueOf(java.lang.String, int) с основанием 8.
  • В противном случае значение свойства разбирается как десятичное целое число точно так же, как методом valueOf(java.lang.String, int) с основанием 10.

Обратите внимание: ни L ('\u004C'), ни l ('\u006C') не могут появляться в конце значения свойства в качестве индикатора типа, хотя это допускается в исходном коде на языке программирования Java.

Второй аргумент — значение по умолчанию. Значение по умолчанию возвращается, если свойства с указанным именем нет, если свойство имеет неправильный числовой формат либо если указанное имя пусто или равно null.

Параметры:
nm — имя свойства.
val — значение по умолчанию.
Возвращает:
значение свойства типа Long.
См. также:
  • System.getProperty(java.lang.String)
  • System.getProperty(java.lang.String, java.lang.String)

compareTo

public int compareTo(Long anotherLong)
Сравнивает численно два объекта Long.
Указан в:
compareTo в интерфейсе Comparable<Long>
Параметры:
anotherLong — Long для сравнения.
Возвращает:
значение 0, если этот Long равен аргументу Long; значение меньше 0, если этот Long численно меньше аргумента Long; и значение больше 0, если этот Long численно больше аргумента Long (сравнение со знаком).
Начиная с:
1.2

compare

public static int compare(long x, long y)
Сравнивает численно два значения long. Возвращаемое значение совпадает со значением, которое вернуло бы выражение:
   Long.valueOf(x).compareTo(Long.valueOf(y))
Параметры:
x — первое значение long для сравнения
y — второе значение long для сравнения
Возвращает:
значение 0, если x == y; значение меньше 0, если x < y; и значение больше 0, если x > y
Начиная с:
1.7

compareUnsigned

public static int compareUnsigned(long x, long y)
Сравнивает численно два значения long, рассматривая их как беззнаковые.
Параметры:
x — первое значение long для сравнения
y — второе значение long для сравнения
Возвращает:
значение 0, если x == y; значение меньше 0, если x < y как беззнаковые значения; и значение больше 0, если x > y как беззнаковые значения
Начиная с:
1.8

divideUnsigned

public static long divideUnsigned(long dividend, long divisor)
Возвращает беззнаковое частное от деления первого аргумента на второй, интерпретируя каждый аргумент и результат как беззнаковое значение.

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

Параметры:
dividend — делимое
divisor — делитель
Возвращает:
беззнаковое частное от деления первого аргумента на второй
Начиная с:
1.8
См. также:
  • remainderUnsigned(long, long)

remainderUnsigned

public static long remainderUnsigned(long dividend, long divisor)
Возвращает беззнаковый остаток от деления первого аргумента на второй, интерпретируя каждый аргумент и результат как беззнаковое значение.
Параметры:
dividend — делимое
divisor — делитель
Возвращает:
беззнаковый остаток от деления первого аргумента на второй
Начиная с:
1.8
См. также:
  • divideUnsigned(long, long)

highestOneBit

public static long highestOneBit(long i)
Возвращает значение long, содержащее не более одного бита, равного единице, в позиции старшего (самого левого) бита, равного единице, указанного значения long. Возвращает ноль, если в двоичном представлении указанного значения в дополнительном коде нет битов, равных единице, то есть если оно равно нулю.
Параметры:
i — значение, для которого вычисляется старший бит, равный единице
Возвращает:
значение long с единственным битом, равным единице, в позиции старшего бита, равного единице, указанного значения, либо ноль, если указанное значение равно нулю.
Начиная с:
1.5

lowestOneBit

public static long lowestOneBit(long i)
Возвращает значение long, содержащее не более одного бита, равного единице, в позиции младшего (самого правого) бита, равного единице, указанного значения long. Возвращает ноль, если в двоичном представлении указанного значения в дополнительном коде нет битов, равных единице, то есть если оно равно нулю.
Параметры:
i — значение, для которого вычисляется младший бит, равный единице
Возвращает:
значение long с единственным битом, равным единице, в позиции младшего бита, равного единице, указанного значения, либо ноль, если указанное значение равно нулю.
Начиная с:
1.5

numberOfLeadingZeros

public static int numberOfLeadingZeros(long i)
Возвращает количество нулевых битов перед старшим (самым левым) битом, равным единице, в двоичном представлении указанного значения long в дополнительном коде. Возвращает 64, если в представлении указанного значения в дополнительном коде нет битов, равных единице, то есть если оно равно нулю.

Обратите внимание, что этот метод тесно связан с логарифмом по основанию 2. Для всех положительных значений long x:

  • floor(log2(x)) = 63 - numberOfLeadingZeros(x)
  • ceil(log2(x)) = 64 - numberOfLeadingZeros(x - 1)
Параметры:
i — значение, для которого вычисляется количество ведущих нулей
Возвращает:
количество нулевых битов перед старшим (самым левым) битом, равным единице, в двоичном представлении указанного значения long в дополнительном коде либо 64, если значение равно нулю.
Начиная с:
1.5

numberOfTrailingZeros

public static int numberOfTrailingZeros(long i)
Возвращает количество нулевых битов после младшего (самого правого) бита, равного единице, в двоичном представлении указанного значения long в дополнительном коде. Возвращает 64, если в представлении указанного значения в дополнительном коде нет битов, равных единице, то есть если оно равно нулю.
Параметры:
i — значение, для которого вычисляется количество завершающих нулей
Возвращает:
количество нулевых битов после младшего (самого правого) бита, равного единице, в двоичном представлении указанного значения long в дополнительном коде либо 64, если значение равно нулю.
Начиная с:
1.5

bitCount

public static int bitCount(long i)
Возвращает количество битов, равных единице, в двоичном представлении указанного значения long в дополнительном коде. Эту функцию иногда называют подсчётом единичных битов.
Параметры:
i — значение, биты которого нужно подсчитать
Возвращает:
количество битов, равных единице, в двоичном представлении указанного значения long в дополнительном коде.
Начиная с:
1.5

rotateLeft

public static long rotateLeft(long i, int distance)
Возвращает значение, полученное циклическим сдвигом влево двоичного представления указанного значения long в дополнительном коде на заданное количество битов. (Биты, вытесненные слева, то есть со стороны старших разрядов, возвращаются справа, со стороны младших разрядов.)

Обратите внимание, что циклический сдвиг влево на отрицательное расстояние эквивалентен циклическому сдвигу вправо: rotateLeft(val, -distance) == rotateRight(val, distance). Также обратите внимание, что сдвиг на любое число, кратное 64, не изменяет значение, поэтому можно игнорировать все биты расстояния сдвига, кроме шести младших, даже если расстояние отрицательное: rotateLeft(val, distance) == rotateLeft(val, distance & 0x3F).

Параметры:
i — значение, биты которого нужно циклически сдвинуть влево
distance — количество битовых позиций для циклического сдвига влево
Возвращает:
значение, полученное циклическим сдвигом влево двоичного представления указанного значения long в дополнительном коде на заданное количество битов.
Начиная с:
1.5

rotateRight

public static long rotateRight(long i, int distance)
Возвращает значение, полученное циклическим сдвигом вправо двоичного представления указанного значения long в дополнительном коде на заданное количество битов. (Биты, вытесненные справа, то есть со стороны младших разрядов, возвращаются слева, со стороны старших разрядов.)

Обратите внимание, что циклический сдвиг вправо на отрицательное расстояние эквивалентен циклическому сдвигу влево: rotateRight(val, -distance) == rotateLeft(val, distance). Также обратите внимание, что сдвиг на любое число, кратное 64, не изменяет значение, поэтому можно игнорировать все биты расстояния сдвига, кроме шести младших, даже если расстояние отрицательное: rotateRight(val, distance) == rotateRight(val, distance & 0x3F).

Параметры:
i — значение, биты которого нужно циклически сдвинуть вправо
distance — количество битовых позиций для циклического сдвига вправо
Возвращает:
значение, полученное циклическим сдвигом вправо двоичного представления указанного значения long в дополнительном коде на заданное количество битов.
Начиная с:
1.5

reverse

public static long reverse(long i)
Возвращает значение, полученное обращением порядка битов в двоичном представлении указанного значения long в дополнительном коде.
Параметры:
i — значение для обращения
Возвращает:
значение, полученное обращением порядка битов в указанном значении long.
Начиная с:
1.5

compress

public static long compress(long i, long mask)
Возвращает значение, полученное сжатием битов указанного значения long, i, в соответствии с заданной битовой маской.

Для каждого бита маски, равного единице, mb, от младшего к старшему, значение бита i в той же позиции, что и mb, последовательно помещается в сжатое значение начиная с младшего бита. Все оставшиеся старшие биты сжатого значения устанавливаются в ноль.

Примечание к API:
Рассмотрим простой случай сжатия цифр шестнадцатеричного значения:
// Compressing drink to food
compress(0xCAFEBABEL, 0xFF00FFF0L) == 0xCABABL
Начиная с младшей шестнадцатеричной цифры в позиции 0 справа, маска 0xFF00FFF0 выбирает шестнадцатеричные цифры в позициях 1, 2, 3, 6 и 7 значения 0xCAFEBABE. Выбранные цифры располагаются в результирующем сжатом значении подряд, начиная с позиции 0, в том же порядке.

Все следующие тождества возвращают true и помогают понять поведение compress:

// Returns 1 if the bit at position n is one
compress(x, 1L << n) == (x >> n & 1)

// Logical shift right
compress(x, -1L << n) == x >>> n

// Any bits not covered by the mask are ignored
compress(x, m) == compress(x & m, m)

// Compressing a value by itself
compress(m, m) == (m == -1 || m == 0) ? m : (1L << bitCount(m)) - 1

// Expanding then compressing with the same mask
compress(expand(x, m), m) == x & compress(m, m)

Операцию Sheep And Goats (SAG; «овцы и козы»; см. Hacker's Delight, второе издание, раздел 7.7) можно реализовать следующим образом:

long compressLeft(long i, long mask) {
    // This implementation follows the description in Hacker's Delight which
    // is informative. A more optimal implementation is:
    //   Long.compress(i, mask) << -Long.bitCount(mask)
    return Long.reverse(
        Long.compress(Long.reverse(i), Long.reverse(mask)));
}

long sag(long i, long mask) {
    return compressLeft(i, mask) | Long.compress(i, ~mask);
}

// Separate the sheep from the goats
sag(0x00000000_CAFEBABEL, 0xFFFFFFFF_FF00FFF0L) == 0x00000000_CABABFEEL
Параметры:
i — значение, биты которого нужно сжать
mask — битовая маска
Возвращает:
сжатое значение
Начиная с:
19
См. также:
  • expand(long, long)

expand

public static long expand(long i, long mask)
Возвращает значение, полученное расширением битов указанного значения long, i, в соответствии с заданной битовой маской.

Для каждого бита маски, равного единице, mb, от младшего к старшему, следующее значение бита i, начиная с младшего бита, помещается в расширенное значение в ту же позицию, что и mb. Все остальные биты расширенного значения устанавливаются в ноль.

Примечание к API:
Рассмотрим простой случай расширения цифр шестнадцатеричного значения:
expand(0x0000CABABL, 0xFF00FFF0L) == 0xCA00BAB0L
Начиная с младшей шестнадцатеричной цифры в позиции 0 справа, маска 0xFF00FFF0 выбирает первые пять шестнадцатеричных цифр значения 0x0000CABAB. Выбранные цифры располагаются в результирующем расширенном значении по порядку в позициях 1, 2, 3, 6 и 7.

Все следующие тождества возвращают true и помогают понять поведение expand:

// Logically shift right the bit at position 0
expand(x, 1L << n) == (x & 1) << n

// Logically shift right
expand(x, -1L << n) == x << n

// Expanding all bits returns the mask
expand(-1L, m) == m

// Any bits not covered by the mask are ignored
expand(x, m) == expand(x, m) & m

// Compressing then expanding with the same mask
expand(compress(x, m), m) == x & m

Операцию выбора для определения позиции бита, равного единице, с индексом n в значении long можно реализовать следующим образом:

long select(long i, long n) {
    // the one-bit in i (the mask) with index n
    long nthBit = Long.expand(1L << n, i);
    // the bit position of the one-bit with index n
    return Long.numberOfTrailingZeros(nthBit);
}

// The one-bit with index 0 is at bit position 1
select(0b10101010_10101010, 0) == 1
// The one-bit with index 3 is at bit position 7
select(0b10101010_10101010, 3) == 7
Параметры:
i — значение, биты которого нужно расширить
mask — битовая маска
Возвращает:
расширенное значение
Начиная с:
19
См. также:
  • compress(long, long)

signum

public static int signum(long i)
Возвращает функцию знака для указанного значения long. (Возвращаемое значение равно -1, если указанное значение отрицательно; 0, если указанное значение равно нулю; и 1, если указанное значение положительно.)
Параметры:
i — значение, знак которого необходимо вычислить
Возвращает:
функцию знака для указанного значения long.
Начиная с версии:
1.5

reverseBytes

public static long reverseBytes(long i)
Возвращает значение, полученное при обращении порядка байтов в дополнительном коде указанного значения long.
Параметры:
i — значение, байты которого необходимо обратить
Возвращает:
значение, полученное при обращении байтов указанного значения long.
Начиная с версии:
1.5

sum

public static long sum(long a, long b)
Складывает два значения long, как это делает оператор +.
Параметры:
a — первый операнд
b — второй операнд
Возвращает:
сумму a и b
Начиная с версии:
1.8
См. также:
  • BinaryOperator

max

public static long max(long a, long b)
Возвращает большее из двух значений long, как если бы был вызван метод Math.max.
Параметры:
a — первый операнд
b — второй операнд
Возвращает:
большее из a и b
Начиная с версии:
1.8
См. также:
  • BinaryOperator

min

public static long min(long a, long b)
Возвращает меньшее из двух значений long, как если бы был вызван метод Math.min.
Параметры:
a — первый операнд
b — второй операнд
Возвращает:
меньшее из a и b
Начиная с версии:
1.8
См. также:
  • BinaryOperator

describeConstable

public Optional<Long> describeConstable()
Возвращает Optional, содержащий номинальный дескриптор этого экземпляра, которым является сам экземпляр.
Указано в:
describeConstable в интерфейсе Constable
Возвращает:
Optional, описывающий экземпляр Long
Начиная с версии:
12

resolveConstantDesc

public Long resolveConstantDesc(MethodHandles.Lookup lookup)
Разрешает этот экземпляр как ConstantDesc, результатом чего является сам экземпляр.
Указано в:
resolveConstantDesc в интерфейсе ConstantDesc
Параметры:
lookup — игнорируется
Возвращает:
экземпляр Long
Начиная с версии:
12

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/Long.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API