Класс Long
- Все реализуемые интерфейсы:
Serializable, Comparable<Long>, Constable, ConstantDesc
public final class Long extends Number implements Comparable<Long>, Constable, ConstantDesc
Long является классом-оболочкой для значений примитивного типа long. Объект типа Long содержит одно поле типа long. Кроме того, этот класс предоставляет несколько методов для преобразования long в String и String в
long, а также другие константы и методы, полезные при работе с long.
Это класс, основанный на значениях; программистам следует считать экземпляры, которые равны, взаимозаменяемыми и не использовать экземпляры для синхронизации, иначе возможно непредсказуемое поведение. Например, в одном из будущих выпусков синхронизация может завершиться неудачей.
Примечание по реализации: реализации методов «побитовых манипуляций» (например, highestOneBit и numberOfTrailingZeros) основаны на материалах из книг Генри С. Уоррена-младшего Hacker's Delight (Addison Wesley, 2002) и Hacker's Delight, Second Edition (Pearson Education, 2013).
- Начиная с:
- 1.0
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
BYTES |
Количество байтов, используемых для представления значения long в двоичной форме с дополнительным кодом. |
static final long |
MAX_VALUE |
Константа, содержащая максимальное значение, которое может иметь long: 263-1. |
static final long |
MIN_VALUE |
Константа, содержащая минимальное значение, которое может иметь long: -263. |
static final int |
SIZE |
Количество битов, используемых для представления значения long в двоичной форме с дополнительным кодом. |
static final Class |
TYPE |
Экземпляр Class, представляющий примитивный тип long. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Long |
Устарел. Использование этого конструктора редко бывает уместным. |
Long |
Устарел. Использование этого конструктора редко бывает уместным. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static int |
bitCount |
Возвращает количество единичных битов в двоичном представлении указанного значения long с дополнительным кодом. |
byte |
byteValue() |
Возвращает значение этого Long как byte после сужающего преобразования примитивного типа. |
static int |
compare |
Сравнивает численно два значения long. |
int |
compareTo |
Сравнивает численно два объекта Long. |
static int |
compareUnsigned |
Сравнивает численно два значения long, рассматривая их как беззнаковые. |
static long |
compress |
Возвращает значение, полученное сжатием битов указанного значения long, i, в соответствии с заданной битовой маской. |
static Long |
decode |
Декодирует String в Long. |
Optional |
describeConstable() |
Возвращает Optional, содержащий номинальный дескриптор этого экземпляра, которым является сам экземпляр. |
static long |
divideUnsigned |
Возвращает беззнаковое частное от деления первого аргумента на второй, при этом каждый аргумент и результат интерпретируются как беззнаковые значения. |
double |
doubleValue() |
Возвращает значение этого Long как double после расширяющего преобразования примитивного типа. |
boolean |
equals |
Сравнивает этот объект с указанным объектом. |
static long |
expand |
Возвращает значение, полученное расширением битов указанного значения long, i, в соответствии с заданной битовой маской. |
float |
floatValue() |
Возвращает значение этого Long как float после расширяющего преобразования примитивного типа. |
static Long |
getLong |
Определяет значение long системного свойства с указанным именем. |
static Long |
getLong |
Определяет значение long системного свойства с указанным именем. |
static Long |
getLong |
Возвращает значение long системного свойства с указанным именем. |
int |
hashCode() |
Возвращает хеш-код этого Long. |
static int |
hashCode |
Возвращает хеш-код значения long; совместим с Long.hashCode(). |
static long |
highestOneBit |
Возвращает значение long, содержащее не более одного единичного бита в позиции старшего («самого левого») единичного бита указанного значения long. |
int |
intValue() |
Возвращает значение этого Long как int после сужающего преобразования примитивного типа. |
long |
longValue() |
Возвращает значение этого Long как значение long. |
static long |
lowestOneBit |
Возвращает значение long, содержащее не более одного единичного бита в позиции младшего («самого правого») единичного бита указанного значения long. |
static long |
max |
Возвращает большее из двух значений long, как если бы был вызван метод Math.max. |
static long |
min |
Возвращает меньшее из двух значений long, как если бы был вызван метод Math.min. |
static int |
numberOfLeadingZeros |
Возвращает количество нулевых битов перед старшим («самым левым») единичным битом в двоичном представлении указанного значения long с дополнительным кодом. |
static int |
numberOfTrailingZeros |
Возвращает количество нулевых битов после младшего («самого правого») единичного бита в двоичном представлении указанного значения long с дополнительным кодом. |
static long |
parseLong |
Разбирает аргумент CharSequence как знаковое значение long в указанной radix, начиная с указанной beginIndex и до endIndex - 1. |
static long |
parseLong |
Разбирает строковый аргумент как знаковое десятичное значение long. |
static long |
parseLong |
Разбирает строковый аргумент как знаковое значение long в системе счисления, указанной вторым аргументом. |
static long |
parseUnsignedLong |
Разбирает аргумент CharSequence как беззнаковое значение long в указанной radix, начиная с указанной beginIndex и до endIndex - 1. |
static long |
parseUnsignedLong |
Разбирает строковый аргумент как беззнаковое десятичное значение long. |
static long |
parseUnsignedLong |
Разбирает строковый аргумент как беззнаковое значение long в системе счисления, указанной вторым аргументом. |
static long |
remainderUnsigned |
Возвращает беззнаковый остаток от деления первого аргумента на второй, при этом каждый аргумент и результат интерпретируются как беззнаковые значения. |
Long |
resolveConstantDesc |
Разрешает этот экземпляр как ConstantDesc; результатом является сам экземпляр. |
static long |
reverse |
Возвращает значение, полученное обращением порядка битов в двоичном представлении указанного значения long с дополнительным кодом. |
static long |
reverseBytes |
Возвращает значение, полученное обращением порядка байтов в представлении указанного значения long с дополнительным кодом. |
static long |
rotateLeft |
Возвращает значение, полученное циклическим сдвигом влево двоичного представления указанного значения long с дополнительным кодом на заданное число битов. |
static long |
rotateRight |
Возвращает значение, полученное циклическим сдвигом вправо двоичного представления указанного значения long с дополнительным кодом на заданное число битов. |
short |
shortValue() |
Возвращает значение этого Long как short после сужающего преобразования примитивного типа. |
static int |
signum |
Возвращает функцию знака указанного значения long. |
static long |
sum |
Складывает два значения long, как оператор +. |
static String |
toBinaryString |
Возвращает строковое представление аргумента long в виде беззнакового целого числа в системе счисления с основанием 2. |
static String |
toHexString |
Возвращает строковое представление аргумента long в виде беззнакового целого числа в системе счисления с основанием 16. |
static String |
toOctalString |
Возвращает строковое представление аргумента long в виде беззнакового целого числа в системе счисления с основанием 8. |
String |
toString() |
Возвращает объект String, представляющий значение этого объекта Long. |
static String |
toString |
Возвращает объект String, представляющий указанное значение long. |
static String |
toString |
Возвращает строковое представление первого аргумента в системе счисления, указанной вторым аргументом. |
static String |
toUnsignedString |
Возвращает строковое представление аргумента в виде беззнакового десятичного значения. |
static String |
toUnsignedString |
Возвращает строковое представление первого аргумента как беззнакового целого числа в системе счисления, указанной вторым аргументом. |
static Long |
valueOf |
Возвращает экземпляр Long, представляющий указанное значение long. |
static Long |
valueOf |
Возвращает объект Long, содержащий значение указанного String. |
static Long |
valueOf |
Возвращает объект Long, содержащий значение, извлеченное из указанного String при разборе с использованием системы счисления, заданной вторым аргументом. |
Подробное описание полей
MIN_VALUE
@Native public static final long MIN_VALUE
long: -263.- См. также:
MAX_VALUE
@Native public static final long MAX_VALUE
long: 263-1.- См. также:
TYPE
public static final Class<Long> TYPE
Class, представляющий примитивный тип long.- Начиная с:
- 1.1
SIZE
@Native public static final int SIZE
long в двоичном формате с дополнением до двух.- Начиная с:
- 1.5
- См. также:
BYTES
public static final int BYTES
long в двоичном формате с дополнением до двух.- Начиная с:
- 1.8
- См. также:
Подробное описание конструкторов
Long
@Deprecated(since="9") public Long(long value)
valueOf(long), поскольку она, вероятно, обеспечит значительно более высокую эффективность использования памяти и быстродействие.Long, представляющий указанный аргумент long.- Параметры:
-
value— значение, которое будет представлено объектомLong.
Long
@Deprecated(since="9") public Long(String s) throws NumberFormatException
parseLong(String) для преобразования строки в примитив long или valueOf(String) для преобразования строки в объект Long.Long, представляющий значение long, указанное параметром String. Строка преобразуется в значение long точно так же, как это делает метод parseLong с основанием системы счисления 10.- Параметры:
-
s— значениеString, которое нужно преобразовать вLong. - Исключения:
-
NumberFormatException— если значениеStringне содержит разбираемого значенияlong.
Подробное описание методов
toString
public static String toString(long i, int radix)
Если основание системы счисления меньше Character.MIN_RADIX или больше Character.MAX_RADIX, вместо него используется основание 10.
Если первый аргумент отрицателен, первым символом результата будет знак минус ASCII '-' ('\u002d'). Если первый аргумент неотрицателен, знак в результате не отображается.
Остальные символы результата представляют модуль первого аргумента. Если модуль равен нулю, он представляется одним символом нуля '0' ('\u0030'); в противном случае первый символ представления модуля не будет символом нуля. В качестве цифр используются следующие символы ASCII:
0123456789abcdefghijklmnopqrstuvwxyz Это символы от '\u0030' до '\u0039' и от '\u0061' до '\u007a'. Если radix равно N, то первые N из этих символов используются в показанном порядке как цифры системы счисления с основанием N. Так, цифрами шестнадцатеричной системы счисления (с основанием 16) являются 0123456789abcdef. Если нужны заглавные буквы, к результату можно применить метод String.toUpperCase(): Long.toString(n, 16).toUpperCase()
- Параметры:
-
i— значениеlong, которое нужно преобразовать в строку. -
radix— основание системы счисления для строкового представления. - Возвращает:
- строковое представление аргумента в указанной системе счисления.
- См. также:
toUnsignedString
public static String toUnsignedString(long i, int radix)
Если основание системы счисления меньше Character.MIN_RADIX или больше Character.MAX_RADIX, вместо него используется основание 10.
Обратите внимание: поскольку первый аргумент рассматривается как беззнаковое значение, начальный знак не выводится.
Если модуль равен нулю, он представляется одним символом нуля '0' ('\u0030'); в противном случае первый символ представления модуля не будет символом нуля.
Правила для оснований систем счисления и символов, используемых в качестве цифр, совпадают с правилами метода toString.
- Параметры:
-
i— целое число, которое нужно преобразовать в беззнаковую строку. -
radix— основание системы счисления для строкового представления. - Возвращает:
- беззнаковое строковое представление аргумента в указанной системе счисления.
- Начиная с:
- 1.8
- См. также:
toHexString
public static String toHexString(long i)
long как беззнакового целого числа в системе счисления с основанием 16. Беззнаковое значение long равно аргументу плюс 264, если аргумент отрицательный; в противном случае оно равно аргументу. Это значение преобразуется в строку из цифр ASCII в шестнадцатеричной системе счисления (с основанием 16) без лишних ведущих 0.
Значение аргумента можно восстановить из возвращенной строки s, вызвав Long.parseUnsignedLong(s,
16).
Если беззнаковый модуль равен нулю, он представляется одним символом нуля '0' ('\u0030'); в противном случае первый символ представления беззнакового модуля не будет символом нуля. В качестве шестнадцатеричных цифр используются следующие символы:
0123456789abcdef Это символы от '\u0030' до '\u0039' и от '\u0061' до '\u0066'. Если нужны заглавные буквы, к результату можно применить метод String.toUpperCase(): Long.toHexString(n).toUpperCase()
- Примечание к API:
- Класс
HexFormatпредоставляет средства форматирования и разбора массивов байтов и примитивных значений для получения строки или добавления вAppendable.HexFormatформатирует и разбирает шестнадцатеричные символы в верхнем или нижнем регистре, добавляя ведущие нули; для массивов байтов также включает разделитель, префикс и суффикс для каждого байта. - Параметры:
-
i— значениеlong, которое нужно преобразовать в строку. - Возвращает:
- строковое представление беззнакового значения
long, представленного аргументом, в шестнадцатеричной системе счисления (с основанием 16). - Начиная с:
- 1.0.2
- См. также:
toOctalString
public static String toOctalString(long i)
long как беззнакового целого числа в системе счисления с основанием 8. Беззнаковое значение long равно аргументу плюс 264, если аргумент отрицательный; в противном случае оно равно аргументу. Это значение преобразуется в строку из цифр ASCII в восьмеричной системе счисления (с основанием 8) без лишних ведущих 0.
Значение аргумента можно восстановить из возвращенной строки s, вызвав Long.parseUnsignedLong(s,
8).
Если беззнаковый модуль равен нулю, он представляется одним символом нуля '0' ('\u0030'); в противном случае первый символ представления беззнакового модуля не будет символом нуля. В качестве восьмеричных цифр используются следующие символы:
01234567 Это символы от '\u0030' до '\u0037'.- Параметры:
-
i— значениеlong, которое нужно преобразовать в строку. - Возвращает:
- строковое представление беззнакового значения
long, представленного аргументом, в восьмеричной системе счисления (с основанием 8). - Начиная с:
- 1.0.2
- См. также:
toBinaryString
public static String toBinaryString(long i)
long как беззнакового целого числа в системе счисления с основанием 2. Беззнаковое значение long равно аргументу плюс 264, если аргумент отрицательный; в противном случае оно равно аргументу. Это значение преобразуется в строку из цифр ASCII в двоичной системе счисления (с основанием 2) без лишних ведущих 0.
Значение аргумента можно восстановить из возвращенной строки s, вызвав Long.parseUnsignedLong(s,
2).
Если беззнаковый модуль равен нулю, он представляется одним символом нуля '0' ('\u0030'); в противном случае первый символ представления беззнакового модуля не будет символом нуля. В качестве двоичных цифр используются символы '0' ('\u0030') и
'1' ('\u0031').
- Параметры:
-
i— значениеlong, которое нужно преобразовать в строку. - Возвращает:
- строковое представление беззнакового значения
long, представленного аргументом, в двоичной системе счисления (с основанием 2). - Начиная с:
- 1.0.2
- См. также:
toString
public static String toString(long i)
String, представляющий указанное значение long. Аргумент преобразуется в знаковое десятичное представление и возвращается в виде строки точно так же, как если бы аргумент и основание 10 были переданы в метод toString(long, int).- Параметры:
-
i— значениеlong, которое нужно преобразовать. - Возвращает:
- строковое представление аргумента в десятичной системе счисления.
toUnsignedString
public static String toUnsignedString(long i)
toUnsignedString(long, int).- Параметры:
-
i— целое число, которое нужно преобразовать в беззнаковую строку. - Возвращает:
- беззнаковое строковое представление аргумента.
- Начиная с:
- 1.8
- См. также:
parseLong
public static long parseLong(String s, int radix) throws NumberFormatException
long в системе счисления, основание которой указано вторым аргументом. Все символы строки должны быть цифрами указанной системы счисления (определяется тем, возвращает ли Character.digit(char, int) неотрицательное значение), за исключением первого символа, которым может быть знак минус ASCII '-' ('\u002D'), обозначающий отрицательное значение, или знак плюс ASCII '+' ('\u002B'), обозначающий положительное значение. Возвращается полученное значение long. Обратите внимание: символ L ('\u004C') и символ l ('\u006C') не могут стоять в конце строки в качестве обозначения типа, как это допускается в исходном коде на языке программирования Java; однако L или l могут использоваться как цифры в системе счисления с основанием не менее 22.
Исключение типа NumberFormatException выбрасывается в любом из следующих случаев:
- Первый аргумент равен
nullили является строкой нулевой длины. - Значение
radixменьшеCharacter.MIN_RADIXили большеCharacter.MAX_RADIX. - Какой-либо символ строки не является цифрой указанной системы счисления; исключение составляет первый символ, который может быть знаком минус
'-'('\u002d') или знаком плюс'+'('\u002B'), если длина строки больше 1. - Значение, представленное строкой, не является значением типа
long.
Примеры:
parseLong("0", 10) returns 0L
parseLong("473", 10) returns 473L
parseLong("+42", 10) returns 42L
parseLong("-0", 10) returns 0L
parseLong("-FF", 16) returns -255L
parseLong("1100110", 2) returns 102L
parseLong("99", 8) throws a NumberFormatException
parseLong("Hazelnut", 10) throws a NumberFormatException
parseLong("Hazelnut", 36) returns 1356099454469L
- Параметры:
-
s— значениеString, содержащее разбираемое представлениеlong. -
radix— основание системы счисления для разбораs. - Возвращает:
- значение
long, представленное строковым аргументом в указанной системе счисления. - Исключения:
-
NumberFormatException— если строка не содержит разбираемого значенияlong.
parseLong
public static long parseLong(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException
CharSequence как знаковое значение long в указанной системе счисления radix, начиная с указанного индекса beginIndex и заканчивая endIndex - 1. Метод не предпринимает действий для защиты от изменения CharSequence во время разбора.
- Параметры:
-
s— значениеCharSequence, содержащее разбираемое представлениеlong -
beginIndex— начальный индекс включительно. -
endIndex— конечный индекс исключительно. -
radix— основание системы счисления для разбораs. - Возвращает:
- знаковое значение
long, представленное подпоследовательностью в указанной системе счисления. - Исключения:
-
NullPointerException— еслиsравно null. -
IndexOutOfBoundsException— еслиbeginIndexотрицательно, или еслиbeginIndexбольшеendIndex, или еслиendIndexбольшеs.length(). -
NumberFormatException— если значениеCharSequenceне содержит разбираемого значенияlongв указанной системе счисленияradixили еслиradixменьшеCharacter.MIN_RADIXлибо большеCharacter.MAX_RADIX. - Начиная с:
- 9
parseLong
public static long parseLong(String s) throws NumberFormatException
long. Все символы строки должны быть десятичными цифрами, за исключением первого символа, которым может быть знак минус ASCII '-' (\u002D'), обозначающий отрицательное значение, или знак плюс ASCII '+' ('\u002B'), обозначающий положительное значение. Возвращается полученное значение long — точно так же, как если бы аргумент и основание 10 были переданы в метод parseLong(java.lang.String, int). Обратите внимание: символ L ('\u004C') и символ l ('\u006C') не могут стоять в конце строки в качестве обозначения типа, как это допускается в исходном коде на языке программирования Java.
- Параметры:
-
s— значениеString, содержащее разбираемое представлениеlong - Возвращает:
- значение
long, представленное аргументом в десятичной системе счисления. - Исключения:
-
NumberFormatException— если строка не содержит разбираемого значенияlong.
parseUnsignedLong
public static long parseUnsignedLong(String s, int radix) throws NumberFormatException
long в системе счисления, основание которой указано вторым аргументом. Беззнаковое целое число отображает значения, обычно соответствующие отрицательным числам, в положительные числа, превышающие MAX_VALUE. Все символы строки должны быть цифрами указанной системы счисления (определяется тем, возвращает ли Character.digit(char, int) неотрицательное значение), за исключением первого символа, которым может быть знак плюс ASCII '+' ('\u002B'). Возвращается полученное целое значение. Исключение типа NumberFormatException выбрасывается в любом из следующих случаев:
- Первый аргумент равен
nullили является строкой нулевой длины. - Основание системы счисления меньше
Character.MIN_RADIXили большеCharacter.MAX_RADIX. - Какой-либо символ строки не является цифрой указанной системы счисления; исключение составляет первый символ, который может быть знаком плюс
'+'('\u002B'), если длина строки больше 1. - Значение, представленное строкой, больше наибольшего беззнакового значения
long: 264-1.
- Параметры:
-
s— значениеString, содержащее разбираемое представление беззнакового целого числа -
radix— основание системы счисления для разбораs. - Возвращает:
- беззнаковое значение
long, представленное строковым аргументом в указанной системе счисления. - Исключения:
-
NumberFormatException— если значениеStringне содержит разбираемого значенияlong. - Начиная с:
- 1.8
parseUnsignedLong
public static long parseUnsignedLong(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException
CharSequence как беззнаковое значение long в указанной системе счисления radix, начиная с указанного индекса beginIndex и заканчивая endIndex - 1. Метод не предпринимает действий для защиты от изменения CharSequence во время разбора.
- Параметры:
-
s— значениеCharSequence, содержащее разбираемое беззнаковое представлениеlong -
beginIndex— начальный индекс включительно. -
endIndex— конечный индекс исключительно. -
radix— основание системы счисления для разбораs. - Возвращает:
- беззнаковое значение
long, представленное подпоследовательностью в указанной системе счисления. - Исключения:
-
NullPointerException— еслиsравно null. -
IndexOutOfBoundsException— еслиbeginIndexотрицательно, или еслиbeginIndexбольшеendIndex, или еслиendIndexбольшеs.length(). -
NumberFormatException— если значениеCharSequenceне содержит разбираемого беззнакового значенияlongв указанной системе счисленияradixили еслиradixменьшеCharacter.MIN_RADIXлибо большеCharacter.MAX_RADIX. - Начиная с:
- 9
parseUnsignedLong
public static long parseUnsignedLong(String s) throws NumberFormatException
long. Все символы строки должны быть десятичными цифрами, за исключением первого символа, которым может быть знак плюс ASCII
'+' ('\u002B'). Полученное целое значение возвращается точно так же, как если бы аргумент и основание 10 были переданы в метод parseUnsignedLong(java.lang.String, int).- Параметры:
-
s— значениеString, содержащее разбираемое беззнаковое представлениеlong - Возвращает:
- беззнаковое значение
long, представленное строковым аргументом в десятичной системе счисления - Исключения:
-
NumberFormatException— если строка не содержит разбираемого беззнакового целого числа. - Начиная с:
- 1.8
valueOf
public static Long valueOf(String s, int radix) throws NumberFormatException
Long, содержащий значение, извлеченное из указанного String при разборе с основанием системы счисления, заданным вторым аргументом. Первый аргумент интерпретируется как знаковое значение long в системе счисления с основанием, указанным вторым аргументом, точно так же, как если бы аргументы были переданы в метод parseLong(java.lang.String, int). Результатом является объект Long, представляющий значение long, указанное строкой. Иными словами, этот метод возвращает объект Long, равный значению выражения:
Long.valueOf(Long.parseLong(s, radix))
- Параметры:
-
s— строка для разбора -
radix— основание системы счисления для интерпретацииs - Возвращает:
- объект
Long, содержащий значение, представленное строковым аргументом в указанной системе счисления. - Исключения:
-
NumberFormatException— если значениеStringне содержит разбираемого значенияlong.
valueOf
public static Long valueOf(String s) throws NumberFormatException
Long, содержащий значение указанного String. Аргумент интерпретируется как знаковое десятичное значение long, точно так же, как если бы он был передан в метод parseLong(java.lang.String). Результатом является объект Long, представляющий целое значение, указанное строкой. Иными словами, этот метод возвращает объект Long, равный значению выражения:
Long.valueOf(Long.parseLong(s))
- Параметры:
-
s— строка для разбора. - Возвращает:
- объект
Long, содержащий значение, представленное строковым аргументом. - Исключения:
-
NumberFormatException— если строку невозможно разобрать как значениеlong.
valueOf
public static Long valueOf(long l)
Long, представляющий указанное значение long. Если новый экземпляр Long не требуется, обычно следует предпочесть этот метод конструктору Long(long), поскольку кэширование часто запрашиваемых значений, вероятно, значительно повысит эффективность использования памяти и быстродействие. Этот метод всегда кэширует значения от -128 до 127 включительно и может кэшировать значения за пределами этого диапазона.- Параметры:
-
l— значение типа long. - Возвращает:
- экземпляр
Long, представляющийl. - Начиная с:
- 1.5
decode
public static Long decode(String nm) throws NumberFormatException
String в Long. Принимает десятичные, шестнадцатеричные и восьмеричные числа, соответствующие следующей грамматике: DecimalNumeral, HexDigits и OctalDigits определены в разделе 3.10.1 документа Спецификация языка Java, за исключением того, что между цифрами не допускаются символы подчёркивания.
- DecodableString:
- Signopt DecimalNumeral
- Signopt
0xHexDigits- Signopt
0XHexDigits- Signopt
#HexDigits- Signopt
0OctalDigits- Sign:
-+
Последовательность символов после необязательного знака и/или спецификатора системы счисления («0x», «0X», «#» или начальный ноль) разбирается методом
Long.parseLong с указанной системой счисления (10, 16 или 8). Эта последовательность символов должна представлять положительное значение, иначе будет выброшено исключение NumberFormatException. Результат меняет знак на противоположный, если первый символ указанного String — знак минуса. В String не допускаются пробельные символы.
- Параметры:
-
nm—Stringдля декодирования. - Возвращает:
- объект
Long, содержащий значениеlong, представленноеnm - Выбрасывает:
-
NumberFormatException— еслиStringне содержит разбираемое значениеlong. - Начиная с:
- 1.2
- См. также:
byteValue
public byte byteValue()
Long как byte после сужающего примитивного преобразования.- Переопределяет:
-
byteValueв классеNumber - Возвращает:
- числовое значение, представленное этим объектом после преобразования к типу
byte. - См. Спецификацию языка Java:
- 5.1.3 Сужающее примитивное преобразование
shortValue
public short shortValue()
Long как short после сужающего примитивного преобразования.- Переопределяет:
-
shortValueв классеNumber - Возвращает:
- числовое значение, представленное этим объектом после преобразования к типу
short. - См. Спецификацию языка Java:
- 5.1.3 Сужающее примитивное преобразование
intValue
public int intValue()
Long как int после сужающего примитивного преобразования.- Указан в:
-
intValueв классеNumber - Возвращает:
- числовое значение, представленное этим объектом после преобразования к типу
int. - См. Спецификацию языка Java:
- 5.1.3 Сужающее примитивное преобразование
longValue
floatValue
public float floatValue()
Long как float после расширяющего примитивного преобразования.- Указан в:
-
floatValueв классеNumber - Возвращает:
- числовое значение, представленное этим объектом после преобразования к типу
float. - См. Спецификацию языка Java:
- 5.1.2 Расширяющее примитивное преобразование
doubleValue
public double doubleValue()
Long как double после расширяющего примитивного преобразования.- Указан в:
-
doubleValueв классеNumber - Возвращает:
- числовое значение, представленное этим объектом после преобразования к типу
double. - См. Спецификацию языка Java:
- 5.1.2 Расширяющее примитивное преобразование
toString
public String toString()
String, представляющий значение этого Long. Значение преобразуется в десятичное представление со знаком и возвращается в виде строки — точно так же, как если бы значение long было передано в качестве аргумента методу toString(long).hashCode
public int hashCode()
Long. Результат — исключающее ИЛИ двух половин примитивного значения long, хранящегося в этом объекте Long. Иными словами, хеш-код равен значению выражения: (int)(this.longValue()^(this.longValue()>>>32))
hashCode
public static int hashCode(long value)
long; совместим с Long.hashCode().- Параметры:
-
value— значение для вычисления хеша - Возвращает:
- значение хеш-кода для значения
long. - Начиная с:
- 1.8
equals
public boolean equals(Object obj)
true тогда и только тогда, когда аргумент не является null и представляет собой объект Long, содержащий то же значение long, что и этот объект.getLong
public static Long getLong(String nm)
long системного свойства с указанным именем. Первый аргумент рассматривается как имя системного свойства. Доступ к системным свойствам осуществляется с помощью метода System.getProperty(java.lang.String). Затем строковое значение этого свойства интерпретируется как значение
long с использованием грамматики, поддерживаемой методом decode, и возвращается объект Long, представляющий это значение.
Если свойства с указанным именем нет, если указанное имя пусто или равно null либо если свойство имеет неправильный числовой формат, возвращается null.
Иными словами, этот метод возвращает объект Long, равный значению:
getLong(nm, null)
- Параметры:
-
nm— имя свойства. - Возвращает:
- значение свойства типа
Long. - См. также:
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. - См. также:
getLong
public static Long getLong(String nm, Long val)
long системного свойства с указанным именем. Первый аргумент рассматривается как имя системного свойства. Доступ к системным свойствам осуществляется с помощью метода System.getProperty(java.lang.String). Затем строковое значение этого свойства интерпретируется как значение long согласно методу decode, и возвращается объект Long, представляющий это значение; кратко говоря: - Если значение свойства начинается с двух символов ASCII
0xили символа ASCII#, за которым не следует знак минуса, остаток разбирается как шестнадцатеричное целое число точно так же, как методомvalueOf(java.lang.String, int)с основанием 16. - Если значение свойства начинается с символа ASCII
0, за которым следует другой символ, оно разбирается как восьмеричное целое число точно так же, как методомvalueOf(java.lang.String, int)с основанием 8. - В противном случае значение свойства разбирается как десятичное целое число точно так же, как методом
valueOf(java.lang.String, int)с основанием 10.
Обратите внимание: ни L ('\u004C'), ни l ('\u006C') не могут появляться в конце значения свойства в качестве индикатора типа, хотя это допускается в исходном коде на языке программирования Java.
Второй аргумент — значение по умолчанию. Значение по умолчанию возвращается, если свойства с указанным именем нет, если свойство имеет неправильный числовой формат либо если указанное имя пусто или равно null.
- Параметры:
-
nm— имя свойства. -
val— значение по умолчанию. - Возвращает:
- значение свойства типа
Long. - См. также:
compareTo
public int compareTo(Long anotherLong)
Long.- Указан в:
-
compareToв интерфейсеComparable<Long> - Параметры:
-
anotherLong—Longдля сравнения. - Возвращает:
- значение
0, если этотLongравен аргументуLong; значение меньше0, если этотLongчисленно меньше аргументаLong; и значение больше0, если этотLongчисленно больше аргументаLong(сравнение со знаком). - Начиная с:
- 1.2
compare
public static int compare(long x, long y)
long. Возвращаемое значение совпадает со значением, которое вернуло бы выражение: Long.valueOf(x).compareTo(Long.valueOf(y))
- Параметры:
-
x— первое значениеlongдля сравнения -
y— второе значениеlongдля сравнения - Возвращает:
- значение
0, еслиx == y; значение меньше0, еслиx < y; и значение больше0, еслиx > y - Начиная с:
- 1.7
compareUnsigned
public static int compareUnsigned(long x, long y)
long, рассматривая их как беззнаковые.- Параметры:
-
x— первое значениеlongдля сравнения -
y— второе значениеlongдля сравнения - Возвращает:
- значение
0, еслиx == y; значение меньше0, еслиx < yкак беззнаковые значения; и значение больше0, еслиx > yкак беззнаковые значения - Начиная с:
- 1.8
divideUnsigned
public static long divideUnsigned(long dividend, long divisor)
Обратите внимание, что в арифметике с дополнительным кодом три другие основные арифметические операции — сложение, вычитание и умножение — дают побитово идентичный результат, если оба операнда считать знаковыми или оба беззнаковыми. Поэтому отдельные методы
addUnsigned и т. п. не предоставляются.
- Параметры:
-
dividend— делимое -
divisor— делитель - Возвращает:
- беззнаковое частное от деления первого аргумента на второй
- Начиная с:
- 1.8
- См. также:
remainderUnsigned
public static long remainderUnsigned(long dividend, long divisor)
- Параметры:
-
dividend— делимое -
divisor— делитель - Возвращает:
- беззнаковый остаток от деления первого аргумента на второй
- Начиная с:
- 1.8
- См. также:
highestOneBit
public static long highestOneBit(long i)
long, содержащее не более одного бита, равного единице, в позиции старшего (самого левого) бита, равного единице, указанного значения long. Возвращает ноль, если в двоичном представлении указанного значения в дополнительном коде нет битов, равных единице, то есть если оно равно нулю.- Параметры:
-
i— значение, для которого вычисляется старший бит, равный единице - Возвращает:
- значение
longс единственным битом, равным единице, в позиции старшего бита, равного единице, указанного значения, либо ноль, если указанное значение равно нулю. - Начиная с:
- 1.5
lowestOneBit
public static long lowestOneBit(long i)
long, содержащее не более одного бита, равного единице, в позиции младшего (самого правого) бита, равного единице, указанного значения long. Возвращает ноль, если в двоичном представлении указанного значения в дополнительном коде нет битов, равных единице, то есть если оно равно нулю.- Параметры:
-
i— значение, для которого вычисляется младший бит, равный единице - Возвращает:
- значение
longс единственным битом, равным единице, в позиции младшего бита, равного единице, указанного значения, либо ноль, если указанное значение равно нулю. - Начиная с:
- 1.5
numberOfLeadingZeros
public static int numberOfLeadingZeros(long i)
long в дополнительном коде. Возвращает 64, если в представлении указанного значения в дополнительном коде нет битов, равных единице, то есть если оно равно нулю. Обратите внимание, что этот метод тесно связан с логарифмом по основанию 2. Для всех положительных значений long x:
- floor(log2(x)) =
63 - numberOfLeadingZeros(x) - ceil(log2(x)) =
64 - numberOfLeadingZeros(x - 1)
- Параметры:
-
i— значение, для которого вычисляется количество ведущих нулей - Возвращает:
- количество нулевых битов перед старшим (самым левым) битом, равным единице, в двоичном представлении указанного значения
longв дополнительном коде либо 64, если значение равно нулю. - Начиная с:
- 1.5
numberOfTrailingZeros
public static int numberOfTrailingZeros(long i)
long в дополнительном коде. Возвращает 64, если в представлении указанного значения в дополнительном коде нет битов, равных единице, то есть если оно равно нулю.- Параметры:
-
i— значение, для которого вычисляется количество завершающих нулей - Возвращает:
- количество нулевых битов после младшего (самого правого) бита, равного единице, в двоичном представлении указанного значения
longв дополнительном коде либо 64, если значение равно нулю. - Начиная с:
- 1.5
bitCount
public static int bitCount(long i)
long в дополнительном коде. Эту функцию иногда называют подсчётом единичных битов.- Параметры:
-
i— значение, биты которого нужно подсчитать - Возвращает:
- количество битов, равных единице, в двоичном представлении указанного значения
longв дополнительном коде. - Начиная с:
- 1.5
rotateLeft
public static long rotateLeft(long i, int distance)
long в дополнительном коде на заданное количество битов. (Биты, вытесненные слева, то есть со стороны старших разрядов, возвращаются справа, со стороны младших разрядов.) Обратите внимание, что циклический сдвиг влево на отрицательное расстояние эквивалентен циклическому сдвигу вправо: rotateLeft(val, -distance) == rotateRight(val,
distance). Также обратите внимание, что сдвиг на любое число, кратное 64, не изменяет значение, поэтому можно игнорировать все биты расстояния сдвига, кроме шести младших, даже если расстояние отрицательное: rotateLeft(val,
distance) == rotateLeft(val, distance & 0x3F).
- Параметры:
-
i— значение, биты которого нужно циклически сдвинуть влево -
distance— количество битовых позиций для циклического сдвига влево - Возвращает:
- значение, полученное циклическим сдвигом влево двоичного представления указанного значения
longв дополнительном коде на заданное количество битов. - Начиная с:
- 1.5
rotateRight
public static long rotateRight(long i, int distance)
long в дополнительном коде на заданное количество битов. (Биты, вытесненные справа, то есть со стороны младших разрядов, возвращаются слева, со стороны старших разрядов.) Обратите внимание, что циклический сдвиг вправо на отрицательное расстояние эквивалентен циклическому сдвигу влево: rotateRight(val, -distance) == rotateLeft(val,
distance). Также обратите внимание, что сдвиг на любое число, кратное 64, не изменяет значение, поэтому можно игнорировать все биты расстояния сдвига, кроме шести младших, даже если расстояние отрицательное: rotateRight(val,
distance) == rotateRight(val, distance & 0x3F).
- Параметры:
-
i— значение, биты которого нужно циклически сдвинуть вправо -
distance— количество битовых позиций для циклического сдвига вправо - Возвращает:
- значение, полученное циклическим сдвигом вправо двоичного представления указанного значения
longв дополнительном коде на заданное количество битов. - Начиная с:
- 1.5
reverse
public static long reverse(long i)
long в дополнительном коде.- Параметры:
-
i— значение для обращения - Возвращает:
- значение, полученное обращением порядка битов в указанном значении
long. - Начиная с:
- 1.5
compress
public static long compress(long i, long mask)
long, i, в соответствии с заданной битовой маской. Для каждого бита маски, равного единице, mb, от младшего к старшему, значение бита i в той же позиции, что и mb, последовательно помещается в сжатое значение начиная с младшего бита. Все оставшиеся старшие биты сжатого значения устанавливаются в ноль.
- Примечание к API:
- Рассмотрим простой случай сжатия цифр шестнадцатеричного значения: Начиная с младшей шестнадцатеричной цифры в позиции 0 справа, маска
// Compressing drink to food compress(0xCAFEBABEL, 0xFF00FFF0L) == 0xCABABL0xFF00FFF0выбирает шестнадцатеричные цифры в позициях 1, 2, 3, 6 и 7 значения0xCAFEBABE. Выбранные цифры располагаются в результирующем сжатом значении подряд, начиная с позиции 0, в том же порядке.Все следующие тождества возвращают
trueи помогают понять поведениеcompress:// Returns 1 if the bit at position n is one compress(x, 1L << n) == (x >> n & 1) // Logical shift right compress(x, -1L << n) == x >>> n // Any bits not covered by the mask are ignored compress(x, m) == compress(x & m, m) // Compressing a value by itself compress(m, m) == (m == -1 || m == 0) ? m : (1L << bitCount(m)) - 1 // Expanding then compressing with the same mask compress(expand(x, m), m) == x & compress(m, m)Операцию Sheep And Goats (SAG; «овцы и козы»; см. Hacker's Delight, второе издание, раздел 7.7) можно реализовать следующим образом:
long compressLeft(long i, long mask) { // This implementation follows the description in Hacker's Delight which // is informative. A more optimal implementation is: // Long.compress(i, mask) << -Long.bitCount(mask) return Long.reverse( Long.compress(Long.reverse(i), Long.reverse(mask))); } long sag(long i, long mask) { return compressLeft(i, mask) | Long.compress(i, ~mask); } // Separate the sheep from the goats sag(0x00000000_CAFEBABEL, 0xFFFFFFFF_FF00FFF0L) == 0x00000000_CABABFEEL - Параметры:
-
i— значение, биты которого нужно сжать -
mask— битовая маска - Возвращает:
- сжатое значение
- Начиная с:
- 19
- См. также:
expand
public static long expand(long i, long mask)
long, i, в соответствии с заданной битовой маской. Для каждого бита маски, равного единице, mb, от младшего к старшему, следующее значение бита i, начиная с младшего бита, помещается в расширенное значение в ту же позицию, что и mb. Все остальные биты расширенного значения устанавливаются в ноль.
- Примечание к API:
- Рассмотрим простой случай расширения цифр шестнадцатеричного значения: Начиная с младшей шестнадцатеричной цифры в позиции 0 справа, маска
expand(0x0000CABABL, 0xFF00FFF0L) == 0xCA00BAB0L0xFF00FFF0выбирает первые пять шестнадцатеричных цифр значения0x0000CABAB. Выбранные цифры располагаются в результирующем расширенном значении по порядку в позициях 1, 2, 3, 6 и 7.Все следующие тождества возвращают
trueи помогают понять поведениеexpand:// Logically shift right the bit at position 0 expand(x, 1L << n) == (x & 1) << n // Logically shift right expand(x, -1L << n) == x << n // Expanding all bits returns the mask expand(-1L, m) == m // Any bits not covered by the mask are ignored expand(x, m) == expand(x, m) & m // Compressing then expanding with the same mask expand(compress(x, m), m) == x & mОперацию выбора для определения позиции бита, равного единице, с индексом
nв значенииlongможно реализовать следующим образом:long select(long i, long n) { // the one-bit in i (the mask) with index n long nthBit = Long.expand(1L << n, i); // the bit position of the one-bit with index n return Long.numberOfTrailingZeros(nthBit); } // The one-bit with index 0 is at bit position 1 select(0b10101010_10101010, 0) == 1 // The one-bit with index 3 is at bit position 7 select(0b10101010_10101010, 3) == 7 - Параметры:
-
i— значение, биты которого нужно расширить -
mask— битовая маска - Возвращает:
- расширенное значение
- Начиная с:
- 19
- См. также:
signum
public static int signum(long i)
long. (Возвращаемое значение равно -1, если указанное значение отрицательно; 0, если указанное значение равно нулю; и 1, если указанное значение положительно.)- Параметры:
-
i— значение, знак которого необходимо вычислить - Возвращает:
- функцию знака для указанного значения
long. - Начиная с версии:
- 1.5
reverseBytes
public static long reverseBytes(long i)
long.- Параметры:
-
i— значение, байты которого необходимо обратить - Возвращает:
- значение, полученное при обращении байтов указанного значения
long. - Начиная с версии:
- 1.5
sum
public static long sum(long a, long b)
long, как это делает оператор +.- Параметры:
-
a— первый операнд -
b— второй операнд - Возвращает:
- сумму
aиb - Начиная с версии:
- 1.8
- См. также:
max
public static long max(long a, long b)
long, как если бы был вызван метод Math.max.- Параметры:
-
a— первый операнд -
b— второй операнд - Возвращает:
- большее из
aиb - Начиная с версии:
- 1.8
- См. также:
min
public static long min(long a, long b)
long, как если бы был вызван метод Math.min.- Параметры:
-
a— первый операнд -
b— второй операнд - Возвращает:
- меньшее из
aиb - Начиная с версии:
- 1.8
- См. также:
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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/Long.html