Spec-Zone.ru › OpenJDK 24

Класс 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) основаны на материалах из книги Генри С. Уоррена, младшего «Хакерская радость» (Addison Wesley, 2002) и «Хакерская радость, второе издание» (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)
Устаревший, для удаления: Этот элемент API может быть удалён в будущей версии.
Использование этого конструктора редко уместно.
Long(String s)
Устаревший, для удаления: Этот элемент API может быть удалён в будущей версии.
Использование этого конструктора редко уместно.

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

Модификатор и тип Метод Описание
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)
Определяет значение системной переменной с заданным именем.
static Long getLong(String nm, long val)
Определяет значение системной переменной с заданным именем.
static Long getLong(String nm, Long val)
Возвращает значение системной переменной с заданным именем.
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 как беззнакового целого числа в двоичной системе счисления.
static String toHexString(long i)
Возвращает строковое представление аргумента long как беззнакового целого числа в шестнадцатеричной системе счисления.
static String toOctalString(long i)
Возвращает строковое представление аргумента long как беззнакового целого числа в восьмеричной системе счисления.
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 при парсинге с основанием, заданным вторым аргументом.

Методы, объявленные в классе java.lang.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", forRemoval=true) public Long(long value)
Устарело, подлежит удалению: Этот элемент API может быть удалён в будущей версии.
Редко уместно использовать этот конструктор. Статический фабричный метод valueOf(long) обычно является лучшим выбором, поскольку он, вероятно, обеспечит значительно лучшую производительность в плане памяти и времени.
Создаёт новый объект Long, представляющий указанное значение long.
Параметры:
value - значение, которое должен представлять объект Long.

Long

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

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

toString

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

Если radix меньше Character.MIN_RADIX или больше Character.MAX_RADIX, используется radix 10.

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

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

0123456789abcdefghijklmnopqrstuvwxyz
Это символы '\u0030' до '\u0039' и '\u0061' до '\u007a'. Если radix = N, то первые N из этих символов используются в качестве цифр в radix-N в указанном порядке. Например, цифры для шестнадцатеричной системы (radix 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)
Возвращает строковое представление первого аргумента как целого беззнакового значения в указанной системе счисления.

Если radix меньше Character.MIN_RADIX или больше Character.MAX_RADIX, используется radix 10.

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

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

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

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

toHexString

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

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

Значение аргумента можно восстановить из возвращаемой строки 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 как целого без знака в восьмеричной системе счисления.

Значение без знака 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 как целого без знака в двоичной системе счисления.

Значение без знака 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
Парсит строковый аргумент как знаковое целое число в указанной системе счисления, задаваемой вторым аргументом. Символы в строке должны быть цифрами указанной системы счисления (как определяется тем, возвращает ли Character.digit(char, int) неотрицательное значение), за исключением того, что первый символ может быть ASCII-знаком минус '-' ('\u002D') для указания отрицательного значения или ASCII-знаком плюс '+' ('\u002B') для указания положительного значения. Результирующее целое значение возвращается.

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

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

  • Первый аргумент пуст или имеет нулевую длину.
  • Система счисления меньше 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 - строка, содержащая строковое представление числа для парсинга.
radix - система счисления, используемая при парсинге.
Возвращает:
целое число, представленное строковым аргументом в указанной системе счисления.
Исключения:
NumberFormatException - если строка не содержит парсируемого целого числа.

parseLong

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

Метод не предпринимает мер по защите от изменения аргумента во время парсинга.

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

parseLong

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

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

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

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.
Parameters:
s - строка, содержащая представление беззнакового целого числа для парсинга
radix - основание, используемое при парсинге s.
Returns:
беззнаковое long, представленное строковым аргументом в заданном основании.
Throws:
NumberFormatException - если строка не содержит разборного беззнакового целого числа.
Since:
1.8

parseUnsignedLong

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

Метод не предпринимает мер по защите от изменения CharSequence во время парсинга.

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

parseUnsignedLong

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

valueOf

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

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

Long.valueOf(Long.parseLong(s, radix))
Parameters:
s - строка для парсинга
radix - основание, используемое для интерпретации s
Returns:
объект Long, содержащий значение, представленное строкой аргумента в заданном основании.
Throws:
NumberFormatException - Если строка не содержит разборного целого числа.

valueOf

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

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

Long.valueOf(Long.parseLong(s))
Parameters:
s - строка для парсинга.
Returns:
объект Long, содержащий значение, представленное строкой аргумента.
Throws:
NumberFormatException - Если строка не может быть обработана как целое число.

valueOf

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

decode

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

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

Parameters:
nm - строка для декодирования.
Returns:
объект Long, содержащий значение целого числа, представленное строкой nm
Throws:
NumberFormatException - если строка не содержит разборного целого числа.
Since:
1.2
See Also:
  • parseLong(String, int)

byteValue

public byte byteValue()
Возвращает значение этого Long как byte после сужения примитивного преобразования.
Overrides:
byteValue в классе Number
Returns:
численное значение, представленное этим объектом после преобразования к типу byte.
See Java Language Specification:
5.1.3 Сужение примитивного преобразования
END_OF_DOCUMENT_MARKER

shortValue

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

intValue

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

longValue

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

floatValue

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

doubleValue

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

toString

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

hashCode

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

hashCode

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

equals

public boolean equals(Object obj)
Сравнивает этот объект с указанным объектом. Результатом является true тогда и только тогда, когда аргумент не null и является объектом Long, содержащим то же самое значение long, что и этот объект.
Overrides:
equals в классе Object
Parameters:
obj - сравниваемый объект.
Returns:
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)
Parameters:
nm - имя переменной.
Returns:
значение 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, когда значение по умолчанию не требуется.
Parameters:
nm - имя переменной.
val - значение по умолчанию.
Returns:
значение Long переменной.
See Also:
  • System.getProperty(java.lang.String)
  • System.getProperty(java.lang.String, java.lang.String)

getLong

public static Long getLong(String nm, Long val)
Возвращает значение системной переменной с заданным именем. Первый аргумент рассматривается как имя системной переменной. К системным переменным можно получить доступ через метод System.getProperty(java.lang.String). Строковое значение этой переменной затем интерпретируется как числовое значение, как описано в методе 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.

Parameters:
nm - имя переменной.
val - значение по умолчанию.
Returns:
значение Long переменной.
See Also:
  • System.getProperty(java.lang.String)
  • System.getProperty(java.lang.String, java.lang.String)

compareTo

public int compareTo(Long anotherLong)
Сравнивает два объекта Long численно.
Specified by:
compareTo в интерфейсе Comparable<Long>
Parameters:
anotherLong - сравниваемый объект Long.
Returns:
значение 0, если этот объект Long равен аргументу Long; значение меньше 0, если этот объект Long численно меньше аргумента Long; и значение больше 0, если этот объект Long численно больше аргумента Long (сравнение со знаком).
Since:
1.2

compare

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

compareUnsigned

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

divideUnsigned

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

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

Parameters:
dividend - значение, которое нужно разделить
divisor - значение, на которое нужно разделить
Returns:
беззнаковый результат деления первого аргумента на второй аргумент
Since:
1.8
See Also:
  • remainderUnsigned(long, long)

remainderUnsigned

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

highestOneBit

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

lowestOneBit

public static long lowestOneBit(long i)
Возвращает значение long с не более чем одним единичным битом, в позиции младшего («правого») единичного бита в указанном значении long. Возвращает ноль, если в указанном значении нет единичных битов в его двоичном представлении со знаком дополнения до двух, то есть, если оно равно нулю.
Parameters:
i - значение, для которого необходимо вычислить младший единичный бит
Returns:
значение long с одним единичным битом в позиции младшего единичного бита в указанном значении или нуль, если указанное значение само равно нулю.
Since:
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)
Parameters:
i - значение, для которого требуется вычислить количество старших нулей
Returns:
количество нулевых битов, предшествующих старшему («левому») единичному биту в двоичном представлении со знаком дополнения до двух указанного значения long, или 64, если значение равно нулю.
Since:
1.5

numberOfTrailingZeros

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

bitCount

public static int bitCount(long i)
Возвращает количество единичных битов в двоичном представлении со знаком дополнения до двух указанного значения long. Эта функция иногда называется подсчётом популяции.
Parameters:
i - значение, биты которого нужно подсчитать
Returns:
количество единичных битов в двоичном представлении со знаком дополнения до двух указанного значения long.
Since:
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, в соответствии с заданной битовой маской.

Для каждого бита со значением 1 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, 2-е издание, раздел 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, в соответствии с заданной битовой маской.

Для каждого бита со значением 1 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

Операция выбора для определения позиции бита со значением 1 с индексом 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)
Возвращает функцию signum для заданного long значения. (Значение возвращается -1, если заданное значение отрицательно; 0, если заданное значение равно нулю; и 1, если заданное значение положительно.)
Параметры:
i - значение, для которого вычисляется функция signum
Возвращает:
функция signum для заданного 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

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/Long.html

Spec-Zone.ru

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