Класс 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 при его разборе в системе счисления, заданной вторым аргументом. |
Методы, объявленные в классе Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Финализация объявлена устаревшей и может быть удалена в будущей версии. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством вызова notify или interrupt. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание полей
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
long используйте parseLong(String), а для преобразования строки в объект Long используйте valueOf(String).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, которое необходимо преобразовать. - Возвращает:
- строковое представление аргумента в системе счисления с основанием 10.
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— делитель - Возвращает:
- беззнаковое частное от деления первого аргумента на второй
- Выбрасывает:
-
ArithmeticException— если делитель равен нулю - С версии:
- 1.8
- См. также:
remainderUnsigned
public static long remainderUnsigned(long dividend, long divisor)
- Параметры:
-
dividend— делимое -
divisor— делитель - Возвращает:
- беззнаковый остаток от деления первого аргумента на второй
- Выбрасывает:
-
ArithmeticException— если делитель равен нулю - С версии:
- 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.