Java.lang.Long Class — CoderLessons.com
Класс java.lang.Long оборачивает значение примитивного типа long в объекте. Объект типа Long содержит одно поле, тип которого long.
Декларация класса
Ниже приводится объявление для класса java.lang.Long –
public final class Long extends Number implements Comparable<Long>
поле
Ниже приведены поля для класса java.lang.Long –
static long MAX_VALUE – это константа, содержащая максимальное значение, которое может иметь long 2 63 -1.
static long MIN_VALUE – это константа, содержащая минимальное значение, которое может иметь long, -2 63 .
static int SIZE – это число битов, используемых для представления длинного значения в двоичной форме дополнения до двух.
static Class <Long> TYPE – это экземпляр класса, представляющий примитивный тип long.
static long MAX_VALUE – это константа, содержащая максимальное значение, которое может иметь long 2 63 -1.
static long MIN_VALUE
static int SIZE – это число битов, используемых для представления длинного значения в двоичной форме дополнения до двух.
static Class <Long> TYPE – это экземпляр класса, представляющий примитивный тип long.
Конструкторы классов
Sr.No. | Конструктор и описание |
---|---|
1 | Long (длинное значение) Это создает недавно выделенный объект Long, который представляет указанный длинный аргумент. |
2 | Long (String s) Это создает вновь распределенный объект Long, представляющий значение long, указанное параметром String. |
Long (длинное значение)
Это создает недавно выделенный объект Long, который представляет указанный длинный аргумент.
Long (String s)
Это создает вновь распределенный объект Long, представляющий значение long, указанное параметром String.
Методы класса
Sr.No. | Метод и описание |
---|---|
1 | static int bitCount (long i) Этот метод возвращает число однобитовых двоичных данных в двоичном представлении указанного длинного значения. |
2 | byte byteValue () Этот метод возвращает значение этого Long в байтах. |
3 | int CompareTo (длинный другой длинный) Этот метод сравнивает два объекта Long численно. |
4 | статическое длинное декодирование (String nm) Этот метод декодирует String в Long. |
5 | double doubleValue () Этот метод возвращает значение этого Long как double. |
6 | логическое равенство (Object obj) Этот метод сравнивает этот объект с указанным объектом. |
7 | float floatValue () Этот метод возвращает значение этого Long как float. |
8 | статический длинный getLong (String nm) Этот метод определяет длинное значение системного свойства с указанным именем. |
9 | статический Long getLong (String nm, long val) Этот метод определяет длинное значение системного свойства с указанным именем. |
10 | статический Long getLong (String nm, Long val) Этот метод возвращает длинное значение системного свойства с указанным именем. |
11 | int hashCode () Этот метод возвращает хеш-код для этого Long. |
12 | статическое длинное самое высокоеOneBit (длинное я) Этот метод возвращает длинное значение, содержащее не более одного бита, в позиции одного бита высшего порядка («крайнего левого») в указанном длинном значении. |
13 | int intValue () Этот метод возвращает значение этого Long как int. |
14 | long longValue () |
15 | статический длинный lowOneBit (long i) Этот метод возвращает длинное значение, содержащее не более одного бита, в позиции младшего бита («самого правого») в указанном длинном значении. |
16 | static int numberOfLeadingZeros (long i) Этот метод возвращает число нулевых битов, предшествующих одному биту высшего порядка («крайнего левого») в двоичном представлении дополнения до двух указанных длинных значений. |
17 | static int numberOfTrailingZeros (long i) Этот метод возвращает число нулевых битов, следующих за одним битом самого низкого порядка («крайнего правого») в двоичном представлении дополнения двух указанных длинных значений. |
18 | static long parseLong (String s) Этот метод анализирует строковый аргумент как длинный десятичный знак со знаком. |
19 | static long parseLong (String s, int radix) Этот метод анализирует строковый аргумент как длинную со знаком в основании, указанном вторым аргументом. |
20 | статический длинный реверс (длинный я) Этот метод возвращает значение, полученное путем изменения порядка битов в двоичном представлении двоичного дополнения указанного длинного значения. |
21 | static long reverseBytes (long i) Этот метод возвращает значение, полученное путем изменения порядка байтов в представлении дополнения до двух указанных длинных значений. |
22 | static long rotateLeft (long i, int distance) Этот метод возвращает значение, полученное вращением двоичного представления дополнения до двух указанных длинных значений, оставленных указанным числом битов. |
23 | static long rotateRight (long i, int distance) Этот метод возвращает значение, полученное вращением двоичного представления дополнения до двух указанных длинных значений на указанное количество битов. |
24 | short shortValue () Этот метод возвращает значение этого Long как short. |
25 | static int signum (long i) Этот метод возвращает функцию signum указанного длинного значения. |
26 | статическая строка toBinaryString (long i) Этот метод возвращает строковое представление длинного аргумента в виде целого числа без знака в базе 2. |
27 | статическая строка toHexString (долго я) Этот метод возвращает строковое представление длинного аргумента в виде целого числа без знака в базе 16. |
28 | статическая строка toOctalString (long i) Этот метод возвращает строковое представление длинного аргумента в виде целого числа без знака в базе 8. |
29 | Строка toString () Этот метод возвращает объект String, представляющий значение этого Long. |
30 | статическая строка toString (long i) Этот метод возвращает объект String, представляющий указанный long. |
31 | static String toString (long i, int radix) Этот метод возвращает строковое представление первого аргумента в основании, заданном вторым аргументом. |
32 | static Long valueOf (long l) Этот метод возвращает экземпляр Long, представляющий указанное значение long. |
33 | static Long valueOf (String s) Этот метод возвращает объект Long, содержащий значение указанной строки. |
34 | static Long valueOf (String s, int radix) Этот метод возвращает объект Long, содержащий значение, извлеченное из указанной строки при анализе с основанием, заданным вторым аргументом. |
Этот метод возвращает число однобитовых двоичных данных в двоичном представлении указанного длинного значения.
Этот метод возвращает значение этого Long в байтах.
Этот метод сравнивает два объекта Long численно.
Этот метод декодирует String в Long.
Этот метод возвращает значение этого Long как double.
Этот метод сравнивает этот объект с указанным объектом.
Этот метод возвращает значение этого Long как float.
Этот метод определяет длинное значение системного свойства с указанным именем.
Этот метод определяет длинное значение системного свойства с указанным именем.
Этот метод возвращает длинное значение системного свойства с указанным именем.
Этот метод возвращает хеш-код для этого Long.
Этот метод возвращает длинное значение, содержащее не более одного бита, в позиции одного бита высшего порядка («крайнего левого») в указанном длинном значении.
Этот метод возвращает значение этого Long как int.
Этот метод возвращает значение этого Long как длинное значение.
Этот метод возвращает длинное значение, содержащее не более одного бита, в позиции младшего бита («самого правого») в указанном длинном значении.
Этот метод возвращает число нулевых битов, предшествующих одному биту высшего порядка («крайнего левого») в двоичном представлении дополнения до двух указанных длинных значений.
Этот метод возвращает число нулевых битов, следующих за одним битом самого низкого порядка («крайнего правого») в двоичном представлении дополнения двух указанных длинных значений.
Этот метод анализирует строковый аргумент как длинный десятичный знак со знаком.
Этот метод анализирует строковый аргумент как длинную со знаком в основании, указанном вторым аргументом.
Этот метод возвращает значение, полученное путем изменения порядка битов в двоичном представлении двоичного дополнения указанного длинного значения.
Этот метод возвращает значение, полученное путем изменения порядка байтов в представлении дополнения до двух указанных длинных значений.
Этот метод возвращает значение, полученное вращением двоичного представления дополнения до двух указанных длинных значений, оставленных указанным числом битов.
Этот метод возвращает значение, полученное вращением двоичного представления дополнения до двух указанных длинных значений на указанное количество битов.
Этот метод возвращает значение этого Long как short.
Этот метод возвращает функцию signum указанного длинного значения.
Этот метод возвращает строковое представление длинного аргумента в виде целого числа без знака в базе 2.
Этот метод возвращает строковое представление длинного аргумента в виде целого числа без знака в базе 16.
Этот метод возвращает строковое представление длинного аргумента в виде целого числа без знака в базе 8.
Этот метод возвращает объект String, представляющий значение этого Long.
Этот метод возвращает объект String, представляющий указанный long.
Этот метод возвращает строковое представление первого аргумента в основании, заданном вторым аргументом.
Этот метод возвращает экземпляр Long, представляющий указанное значение long.
Этот метод возвращает объект Long, содержащий значение указанной строки.
Этот метод возвращает объект Long, содержащий значение, извлеченное из указанной строки при анализе с основанием, заданным вторым аргументом. 63 -1).
Пример
long a = 100000L, long b = -200000L
Float
- Тип данных с плавающей запятой – 32-битная IEEE 754 с плавающей запятой одинарной точности.
- Используется в основном для сохранения памяти в больших массивах чисел с плавающей запятой.
- По умолчанию значение 0.0f.
- Никогда не используются для точных значений, таких как валюта.
Пример
float f1 = 234.5f
Double
- Тип данных двойной точности – 64-разрядная IEEE 754 с плавающей запятой двойной точности.
- Этот тип данных обычно используется как тип данных по умолчанию для десятичных значений, обычно выбор по умолчанию.
- Двойной тип данных никогда не должен использоваться для точных значений, таких как валюта.
- Значение по умолчанию является 0.0d.
Пример
double d1 = 123,4
Boolean
- Логический тип данных представляет один бит информации.
- Есть только два возможных значения: истина и ложь.
- Этот тип данных используется для простых флагов, которые отслеживают истина / ложь условия.
- Значение по умолчанию равно false
Пример
boolean one = true
Char
- Тип данных char – это один 16-битный символ Unicode.
- Минимальное значение равно «\ u0000» (или 0).
- Максимальное значение ‘\ uffff’ (или 65 535 включительно).
- Тип данных Char используется для хранения любого символа.
Пример
char letterA = ‘A’
Оцени статью
Средняя оценка 0 / 5. Количество голосов: 0
Видим, что вы не нашли ответ на свой вопрос.
Помогите улучшить статью.
Напишите комментарий, что можно добавить к статье, какой информации не хватает.
Найти:Сайдбар
Комментарии (0)
Фильтрация по Long.MAX_VALUE не дает результата — Elasticsearch
Vova_Marchev (Владимир Марчев)
1
Привет всем!
Я обнаружил проблему при попытке отфильтровать документы по диапазону, где второй параметр равен Long.MAX_VALUE
.
Например, создадим схему документа:
PUT /example { "сопоставления": { "_doc": { "характеристики": { "заказ": { "тип": "дата", "формат": "эпоха_миллис", "магазин": правда } } } } }
Затем добавьте документ:
PUT /example/_doc/1 { "заказ": 1568705332742 }
Когда я выполняю запрос:
POST /example/_search { "запрос":{ "буль": { "фильтр":[ { "диапазон":{ "заказ":{ "гтэ":0, "лте":9223372036854775807 } } } ] } } }
Я ожидаю получить добавленный документ, но получаю пустой список. 963-1 .
Есть идеи, как это решить?
Заранее спасибо,
Вова
Вова_Марчев (Владимир Марчев)
2
Решение, которое я нашел, состоит в том, чтобы использовать lt
кроме lte
. Просто уменьшение Long.MAX_VALUE
на 1 пункт не помогает.
рьернст (Райан Эрнст)
3
Если удалить lte
полностью, запрос работает? Каждый конец диапазона является необязательным. Я просто пытаюсь сузить круг возможных проблем.
рьернст (Райан Эрнст)
4
О, а можно попробовать заключить значение в кавычки?
"лте": "9223372036854775807"
рьернст (Райан Эрнст)
5
Какую версию Elasticsearch вы используете? Если это до версии 7.0 (когда мы перешли на внутреннее использование Java Time), скорее всего, это система https://github.com/elastic/elasticsearch/issues/23436
. (система) Закрыто
6
Эта тема была автоматически закрыта через 28 дней после последнего ответа. Новые ответы больше не допускаются.
Примитивные типы данных Java — HowToDoInJava
Все значения в Java делятся на две категории: ссылочные типы и примитивные типы . Узнайте обо всех восьми примитивных типах данных в Java , их размерах памяти, значениях по умолчанию и диапазоне максимальных и минимальных значений.
1. Примитивные типы Java
Примитивные типы данных предопределены языком Java и названы зарезервированным ключевым словом. Все примитивные типы можно разделить на две группы: логических типов и числовых типов .
Давайте посмотрим на каждый примитивный тип данных на изображении ниже.
Примитивные типы данных в JavaТип примитива | Размер памяти | Значение по умолчанию | Диапазон |
---|---|---|---|
boolean | 8 bits | false | true or false |
byte | 8 bits | 0 | -128 to 127 inclusive |
char | 16 bits | \u0000 or code point 0 | 0 to 65535 |
short | 16 bits | 0 | -32,768 to 32,767 inclusive |
int | 32 bits | 0 | -2 31 to 2 31 – 1 |
long | 64 bits | 0 | -2 63 to 2 63 – 1 |
float | 32 bit | 0. 0 | 1.4E-45 to 3.4028235e38 |
double | 64 bit | 0.0 | 4.9E-324 to 1,7976931348623157e308 |
2.
boolean TypesТип данных boolean имеет только два допустимых значения: true и 9 false . Эти два значения называются логическими литералами . Мы можем использовать логических литералов в качестве следующего примера.
логическое значение выполнено; // Объявляет логическую переменную с именем done
сделано = верно; // Присваивает true выполненному
//или
логическое выполнено = верно; //Объявляем и присваиваем в той же строке
Важно отметить, что логическая переменная не может быть приведена к любому другому типу данных и наоборот . Java не определяет размер логического типа данных. Его размер зависит от реализации JVM. Обычно значение логического типа данных хранится внутри байта.
3. Интегральные типы Java
Целочисленный тип данных — это числовой тип данных, значения которого имеют целочисленный тип . Java предлагает пять интегральных типов . Интегральные типы потребляют следующий объем памяти:
3.1.
byte
- Тип данных byte представляет собой 8-битный знаковый примитивный целочисленный тип данных Java.
- Диапазон: от -128 до 127 . Это наименьший целочисленный тип данных , доступный в Java.
- В отличие от литералов
int
иlong
, нет литералов байт . - Однако вы можете назначить любой int литерал, находящийся в диапазоне от байта до байтовой переменной.
байт b1 = 125;
байт b2 = -11;
Если вы присваиваете литерал int
переменной byte
, и значение выходит за пределы диапазона типа данных byte, Java генерирует ошибку компилятора. Следующий фрагмент кода вызовет ошибку компилятора:
// Ошибка. 150 - это литерал int вне диапазона от -128 до 127.
байт b = 150;
Java не позволяет присваивать значение переменной типа данных более высокого диапазона переменной типа данных нижнего диапазона, поскольку существует возможная потеря точности при таком назначении. Вы должны использовать приведение, чтобы сделать такое назначение от int до byte .
байт b = (байт) число; // Хорошо
3.2.
short
- Тип данных
short
представляет собой 16-разрядный знаковый примитивный целочисленный тип данных Java . Его диапазон составляет от -32768 до 32767 . - В отличие от литералов int и long , здесь нет короткого литерала.
- Однако любой литерал int , попадающий в диапазон short (от -32768 до 32767) , можно присвоить переменной short .
короткий s1 = 12905; // хорошо
короткий s2 = -11890; // ok
Значение переменной byte всегда может быть присвоено переменной short , потому что диапазон типа данных byte попадает в диапазон типа данных short . Все остальные правила присвоения значения от int или long переменная в short переменная такие же, как и для byte переменной .
3.3.
char
- Тип данных char представляет собой 16-битный беззнаковый примитивный тип данных Java.
- Представляет символ Unicode .
- Обратите внимание, что char — это беззнаковый тип данных. Следовательно, переменная char не может иметь отрицательное значение.
- Диапазон типа данных char равен 9от 0105 0 до 65535 , что совпадает с диапазоном набора Unicode.
- Символьный литерал представляет значение типа данных char.
char c1 = 'A';
символ с2 = 'L';
символ с3 = '5';
символ с4 = '/';
Символьный литерал также может быть выражен как управляющая последовательность символов. Escape-последовательность символов начинается с обратной косой черты, за которой сразу следует символ, и оба они заключаются в одинарные кавычки.
Имеется восемь предопределенных управляющих последовательностей символов as listed below:
Character Escape Sequence | Description |
---|---|
‘\n’ | A linefeed |
‘\r’ | A carriage return |
‘\f’ | A form feed |
‘\b’ | A backspace |
‘\t’ | A tab |
‘\\’ | A backslash |
‘\”’ | Двойная кавычка |
‘\’ | Одинарная кавычка |
Это всего лишь восьмисимвольные управляющие последовательности в Java. Вы не можете определить собственные escape-последовательности символов.
Символьный литерал также может быть выражен как escape-последовательность Unicode в форме '\uxxxx'
, Здесь \u (обратная косая черта, сразу за которой следует строчная буква u) обозначает начало escape-последовательности Unicode, и xxxx представляет ровно четыре шестнадцатеричных цифры.
символов с1 = 'А';
символ c2 = '\ u0041'; // То же, что и c2 = 'A'
3.4.
int
- Тип данных
int
представляет собой 32-разрядный подписанный примитивный тип данных Java . Переменная типа данныхint
занимает 32 бита памяти . - Допустимый диапазон: от -2 147 483 648 до 2 147 483 647 (от -2 31 до 2 31 – 1).
- Все целые числа в этом диапазоне известны как 9.0109 целочисленные литералы (или целочисленные константы). Например, 10, -200, 0, 30, 19 и т. д. являются целочисленными литералами типа int.
Целочисленный литерал может быть присвоен переменной int
, скажем, counter
, например:
int counter = 21;
Java имеет класс-оболочку с именем Integer
, который определяет две константы для представления максимального и минимального значений для типа данных int: Integer.MAX_VALUE
и Integer.MIN_VALUE
. Это объектное представление значения int.
int max = Integer.MAX_VALUE; // Присваивает максимальное значение int для max
int мин = целое число.MIN_VALUE; // Присваивает минимальное значение int min
3.5.
long
- Тип данных long представляет собой 64-битный подписанный примитивный тип данных Java .
- Используется, когда результат вычислений над целыми числами может выйти за пределы диапазона данных типа int.
- Его диапазон от -2 63 до 2 63 – 1.
- Все целые числа в диапазоне long называются целочисленных литералов длинного типа .
Целочисленный литерал типа long всегда заканчивается на «L» (или «l» в нижнем регистре).
длинное число1 = 0L;
длинное число2 = 401L;
длинная мама3 = -3556L;
Даже если значение, хранящееся в переменной long
, находится в пределах диапазона данных типа int
, присвоение типа long типу int не допускается без явного приведения типа , как показано в следующем примере. :
целое число1 = 5;
длинное число2 = 25 л;
// Ошибка времени компиляции. Даже если значение num2 равно 25, которое находится в пределах диапазона int.
число1 = число2;
Если вы хотите присвоить значение переменной long
переменной int
, вы должны явно указать этот факт в своем коде , чтобы Java удостоверился, что вы знаете о возможном переполнении данных. Вы делаете это, используя «cast» в Java, например:
long num1 = (int) num2; // Теперь все в порядке из-за приведения типа "(int)"
Написав (int)num2
, вы указываете Java обрабатывать значение, хранящееся в num2
, как целое число. Во время выполнения Java будет использовать только 32 младших бита из 9.0011 num2 и присвойте значение, хранящееся в этих 32 битах, num1
. Если num2
имеет значение, выходящее за пределы диапазона данных типа int, вы не получите такое же значение в num1
, и это приведет к потере данных .
Java имеет класс Long
(обратите внимание на букву L в верхнем регистре в слове Long), который определяет две константы для представления максимального и минимального значений типа данных long: Long.MAX_VALUE
и Long.MIN_VALUE
.
длинный максимум = Long.MAX_VALUE;
длинная мин. = длинная.MIN_VALUE;
4. Типы с плавающей запятой
Число с плавающей запятой, содержащее дробную часть , известно как действительное число , например, 3,25, 0,49, -9,19 и т. д.
4.1. Как числа хранятся в памяти?
Когда действительное число преобразуется в его двоичное представление, компьютер должен также сохранить положение десятичной точки в числе. Есть две стратегии хранения вещественных чисел в памяти компьютера.
- Формат числа с фиксированной запятой — хранить только двоичное представление числа и предполагать, что всегда есть фиксированное количество цифр до и после точки. Точкой называется десятичная точка в десятичном представлении числа и двоичная точка в двоичном представлении. Тип представления, в котором положение точки всегда фиксировано в числе, известен как числовой формат с фиксированной точкой.
- Формат чисел с плавающей запятой — Сохранить двоичное представление действительного числа и положение точки в вещественном числе. Поскольку количество цифр до и после точки может варьироваться в таком представлении действительного числа, мы говорим, что точка может плавать. Такой вид представления называется форматом «с плавающей запятой».
Представления с плавающей запятой медленнее и менее точны по сравнению с представлениями с фиксированной запятой. Однако представления с плавающей запятой могут обрабатывать больший диапазон чисел с той же памятью компьютера по сравнению с представлениями с фиксированной запятой.
IEEE-754 32-разрядные числа одинарной точности с плавающей запятойJava поддерживает числовой формат с плавающей запятой.
Java имеет два числовых типа данных с плавающей запятой:
- float
- двойной
4.2.
float
Тип данных float использует 32 бита для хранения числа с плавающей запятой в стандартном формате IEEE 754 ( число с плавающей запятой одинарной точности ). Он может представлять действительное число размером 1,4 x 10 9 .0202 -45 и величиной до 3,4 x 10 38 (приблизительно). Диапазон включает только величину. Он может быть положительным или отрицательным.
Все действительные числа, оканчивающиеся на «f» или «F», называются литералами с плавающей запятой .
с плавающей запятой f1 = 8F;
поплавок f2 = 8.F;
поплавок f3 = 8,0F;
Тип данных float определяет две бесконечности: положительная бесконечность и отрицательная бесконечность . Например, результат деления 2,5F
на 0,0F
представляет собой положительную бесконечность с плавающей запятой, тогда как результат деления 2.5F
на -0.0F
представляет собой плавающую отрицательную бесконечность.
Результаты некоторых операций с поплавком не определены. Эти результаты представлены значением типа данных float NaN (Not-a-Number) .
Класс Float
определяет три константы, представляющие положительную бесконечность, отрицательную бесконечность и NaN типа данных float. Есть еще две константы, которые представляют максимальное и минимальное (больше нуля) значения с плавающей запятой, которые могут быть сохранены в переменной с плавающей запятой.
Float.POSITIVE_INFINITY - Положительная бесконечность типа float.
Float.NEGATIVE_INFINITY - Отрицательная бесконечность типа float.
Float.NaN - Не число типа float.
Float.MAX_VALUE — наибольшее положительное значение, которое может быть представлено в переменной с плавающей запятой.
Float.MIN_VALUE — наименьшее положительное значение больше нуля, которое может быть представлено в переменной с плавающей запятой.
Обратите внимание, что значение всех целочисленных типов (int, long, byte, short и char) может быть присвоено переменной типа данных float без использования явного приведения, НО значение float должно быть приведено до того, как оно будет присвоено к переменной любого целочисленного типа данных int, long, byte, short или char.
4.3.
double
Тип данных double использует 64 бита для хранения числа с плавающей запятой в «стандартном формате IEEE 754». Число с плавающей запятой, представленное в 64 битах в соответствии со стандартом IEEE 754, также известно как число с плавающей запятой двойной точности .
Все действительные числа называются двойными литералами . Двойной литерал может дополнительно заканчиваться на «d» или «D», например, 19.27d. Однако суффикс d или D необязателен в двойных литералах. То есть оба 19.27 и 19.27d представляют один и тот же двойной литерал.
двойной d1 = 8D
двойной д2 = 8.;
двойной d3 = 8,0;
двойное д4 = 8.Д;
Как и тип данных float, тип данных double определяет максимальное, минимальное, две бесконечности и значения NaN.
Double.POSITIVE_INFINITY - Положительная бесконечность типа double.
Double.NEGATIVE_INFINITY - Отрицательная бесконечность типа double.