Spec-Zone.ru › OpenJDK 21

Класс 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).

С:
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 может быть удален в будущей версии.
Использование этого конструктора редко уместно.

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

Modifier and Type Method Description
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)
Возвращает строковое представление первого аргумента в указанной системе счисления (основание), заданной вторым аргументом.

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

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

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

Следующие ASCII символы используются в качестве цифр:

0123456789abcdefghijklmnopqrstuvwxyz
Это цифры от '\u0030' до '\u0039' и от '\u0061' до '\u007a'. Если используется основание 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 как беззнакового целого числа в шестнадцатеричной системе счисления.

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

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

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

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

01234567
Эти символы от '\u0030' до '\u0037'.
Parameters:
i - a long для преобразования в строку.
Returns:
строковое представление беззнакового long значения, представленного аргументом в восьмеричной системе счисления (основание 8).
Since:
1.0.2
See Also:
  • 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') используются в качестве двоичных цифр.

Parameters:
i - a long to be converted to a string.
Returns:
строковое представление беззнакового long значения, представленного аргументом в двоичной системе счисления (основание 2).
Since:
1.0.2
See Also:
  • parseUnsignedLong(String, int)
  • toUnsignedString(long, int)

toString

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

toUnsignedString

public static String toUnsignedString(long i)
Возвращает строковое представление аргумента как беззнаковое десятичное значение. Аргумент преобразуется в беззнаковое десятичное представление и возвращается в виде строки, точно так же, как если бы аргумент и основание 10 были переданы в метод toUnsignedString(long, int).
Parameters:
i - целое число для преобразования в беззнаковую строку.
Returns:
беззнаковое строковое представление аргумента.
Since:
1.8
See Also:
  • 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 или является строкой длины ноль.
  • Основание меньше 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
 
Parameters:
s - the String содержащий long представление для парсинга.
radix - основание, используемое при парсинге s.
Returns:
знаковое long представленное строковым аргументом в указанной системе счисления.
Throws:
NumberFormatException - если строка не содержит парсируемое long.

parseLong

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

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

Parameters:
s - the CharSequence содержащий long представление для парсинга
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

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.

Parameters:
s - a String содержащий long представление для парсинга
Returns:
знаковое long представленное аргументом в десятичной системе счисления.
Throws:
NumberFormatException - если строка не содержит парсируемое long.

parseUnsignedLong

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

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

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

parseUnsignedLong

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

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

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

parseUnsignedLong

public static long parseUnsignedLong(String s) throws NumberFormatException
Парсит строковый аргумент как беззнаковое десятичное целое число. Символы в строке должны быть десятичными цифрами, за исключением того, что первый символ может быть ASCII знаком плюс '+' ('\u002B'). Полученное целое значение возвращается точно так же, как если бы аргумент и основание 10 были переданы в метод parseUnsignedLong(java.lang.String, int).
Parameters:
s - a String содержащая представление беззнакового целого числа для парсинга
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 - Если String не содержит парсируемого long.

valueOf

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

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

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

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
Декодирует строку в целое число. Принимает десятичные, шестнадцатеричные и восьмеричные числа, задаваемые следующим грамматическим описанием:
ДекодируемаяСтрока:
Знакопц ДесятичноеЧисло
Знакопц 0x ШестнадцатеричныеЦифры
Знакопц 0X ШестнадцатеричныеЦифры
Знакопц # ШестнадцатеричныеЦифры
Знакопц 0 ВосьмеричныеЦифры
Знак:
-
+
ДесятичноеЧисло, ШестнадцатеричныеЦифры и ВосьмеричныеЦифры определены в разделе 3.10.1 спецификации языка Java, за исключением того, что подчёркивания между цифрами не допускаются.

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

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

byteValue

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

shortValue

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

intValue

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

longValue

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

floatValue

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

doubleValue

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

toString

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

hashCode

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

hashCode

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

equals

public boolean equals(Object obj)
Сравнивает этот объект с указанным объектом. Результатом является true тогда и только тогда, когда аргумент не null и является объектом Long , содержащим то же значение long , что и этот объект.
Overrides:
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 переменной.
ИСКЛЮЧЕНИЯ:
SecurityException - по тем же причинам, что и System.getProperty
См. также:
  • 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 переменной.
ИСКЛЮЧЕНИЯ:
SecurityException - по тем же причинам, что и System.getProperty
См. также:
  • 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.
Throws:
SecurityException - по тем же причинам, что и System.getProperty
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 равен аргументу; значение меньше 0, если этот объект Long численно меньше аргумента; и значение больше 0, если этот объект 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, если значения равны; значение меньше 0, если первое значение меньше второго; и значение больше 0, если первое значение больше второго.
Since:
1.7

compareUnsigned

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

Parameters:
i - значение, биты которого нужно циклически сдвинуть влево
distance - количество позиций разрядов для циклического сдвига влево
Returns:
значение, полученное путём циклического сдвига влево битового представления числа со знаком в дополнительном коде, заданного long значение, на заданное количество разрядов.
Since:
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).

Parameters:
i - значение, биты которого нужно циклически сдвинуть вправо
distance - количество позиций разрядов для циклического сдвига вправо
Returns:
значение, полученное путём циклического сдвига вправо битового представления числа со знаком в дополнительном коде, заданного long значение, на заданное количество разрядов.
Since:
1.5

reverse

public static long reverse(long i)
Возвращает значение, полученное путём обратного порядка битов в битовом представлении числа со знаком в дополнительном коде, заданного long значения.
Parameters:
i - значение, которое нужно перевернуть
Returns:
значение, полученное путём обратного порядка битов в заданном long значении.
Since:
1.5

compress

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

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

API Note:
Рассмотрим простой случай сжатия цифр шестнадцатеричного значения:
// 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
Parameters:
i - значение, биты которого нужно сжать
mask - битовая маска
Returns:
сжатое значение
Since:
19
See Also:
  • expand(long, long)

expand

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

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

API Note:
Рассмотрим простой случай расширения цифр шестнадцатеричного значения:
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
Parameters:
i - значение, биты которого нужно расширить
mask - битовая маска
Returns:
расширенное значение
Since:
19
See Also:
  • compress(long, long)

signum

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

reverseBytes

public static long reverseBytes(long i)
Возвращает значение, полученное путём обратного порядка байтов в битовом представлении числа со знаком в дополнительном коде, заданного long значения.
Parameters:
i - значение, байты которого нужно перевернуть
Returns:
значение, полученное путём обратного порядка байтов в заданном long значении.
Since:
1.5

sum

public static long sum(long a, long b)
Складывает два long значения, как при использовании оператора +.
Parameters:
a - первый операнд
b - второй операнд
Returns:
сумма a и b
Since:
1.8
See Also:
  • BinaryOperator

max

public static long max(long a, long b)
Возвращает большее из двух long значений, как будто вызывается Math.max.
Parameters:
a - первый операнд
b - второй операнд
Returns:
большее из a и b
Since:
1.8
See Also:
  • BinaryOperator

min

public static long min(long a, long b)
Возвращает меньшее из двух long значений, как будто вызывается Math.min.
Parameters:
a - первый операнд
b - второй операнд
Returns:
меньшее из a и b
Since:
1.8
See Also:
  • BinaryOperator

describeConstable

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

resolveConstantDesc

public Long resolveConstantDesc(MethodHandles.Lookup lookup)
Решает этот экземпляр как ConstantDesc, результатом чего является сам экземпляр.
Specified by:
resolveConstantDesc в интерфейсе ConstantDesc
Parameters:
lookup - игнорируется
Returns:
экземпляр Long
Since:
12

© 1993, 2023, 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/21/docs/api/java.base/java/lang/Long.html

Spec-Zone.ru

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