Перейти к содержимому

Как присвоить максимальное значение переменной java

  • автор:

Как в java присвоить переменной целое максимальное значение?

int max = int.MaxValue; — это в c# , есть ли подобные эквиваленты в java?

Дополнен 7 лет назад

Максимально возможное* Т. е последнее в диапазоне своего типа

Голосование за лучший ответ

Integer.MAX_VALUE

fdhgdfgh fdghdfhЗнаток (268) 7 лет назад

Спасибо, а такое же для double есть?

MrChebik Мыслитель (8005) Double.MAX_VALUE установите idea, меньше вопросов по аргументам и методам будет

Похожие вопросы

Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Как вывести минимальное и максимальное значение в Java

В пакете java.lang есть класс Math , в котором есть 2 метода, позволяющие вычислять минимальное и максимальное значение из 2 значений:

min-max-in-java_vertex-academy

Сравнение чисел с помощью этих чисел происходи следующим образом: пишется нужный метод в зависимости от того, Вам нужно максимальное или минимальное число, где в скобках пишется 2 числа, которые нужно сравнить. В результате получаем число, которое удоблетворяет условию. То есть если мы используем Math.max(), то получим большее из двух чисел, если Math.min(), то меньшее. В методах Math.max() и Math.min() можно сравнивать любые числовые данные (int, float и т.д.), но возвращаемый результат будет всегда типа double .

Давайте рассмотрим на примере.

Как присвоить максимальное значение переменной java

Язык программирования Java со статическим контролем типов, что означает, что все переменные должны сначала быть объявлены прежде, чем они смогут использоваться. Это включает утверждение типа переменной и имени, как Вы уже видели:

int gear = 1;
  • байт: byte тип данных является целым числом дополнения 8-разрядного подписанного two. У этого есть минимальное значение-128 и максимальное значение 127 (включительно). byte тип данных может быть полезным для сохранения памяти в многочисленных массивах, где сбережения памяти фактически имеют значение. Они могут также использоваться вместо int где их пределы помогают разъяснить Ваш код; факт, что диапазон переменной ограничивается, может служить формой документации.
  • короткий: short тип данных является целым числом дополнения 16-разрядного подписанного two. У этого есть минимальное значение-32 768 и максимальное значение 32 767 (включительно). Как с byte , те же самые направляющие линии применяются: можно использовать a short сохранять память в многочисленных массивах, в ситуациях, где сбережения памяти фактически имеет значение.
  • интервал: int тип данных является целым числом дополнения 32-разрядного подписанного two. У этого есть минимальное значение-2 147 483 648 и максимальное значение 2 147 483 647 (включительно). Для интегральных значений этот тип данных является обычно выбором значения по умолчанию, если нет причина (как вышеупомянутое), чтобы выбрать что-то еще. Этот тип данных наиболее вероятно будет достаточно большим для чисел, которые Ваша программа будет использовать, но если Вы нуждаетесь в более широком диапазоне значений, использовать long вместо этого.
  • долго: long тип данных является целым числом дополнения 64-разрядного подписанного two. У этого есть минимальное значение-9 223 372 036 854 775 808 и максимальное значение 9,223,372,036,854,775,807 (включительно). Используйте этот тип данных, когда Вы нуждаетесь в диапазоне значений шире чем обеспеченные int .
  • плавание: float тип данных является одинарной точностью 32-разрядная плавающая точка IEEE 754. Его диапазон значений выходит за рамки этого обсуждения, но определяется в Типах С плавающей точкой, Форматах, и разделе Значений Спецификации языка Java. Как с рекомендациями для byte и short , используйте a float (вместо double ) если Вы должны сохранить память в многочисленных массивах чисел с плавающей точкой. Этот тип данных никогда не должен использоваться для точных значений, таких как валюта. Для этого Вы должны будете использовать java.math. BigDecimal class вместо этого. Числа и Строковые покрытия BigDecimal и другие полезные классы обеспечили платформой Java.
  • двойной: double тип данных является двойной точностью 64-разрядная плавающая точка IEEE 754. Его диапазон значений выходит за рамки этого обсуждения, но определяется в Типах С плавающей точкой, Форматах, и разделе Значений Спецификации языка Java. Для десятичных значений этот тип данных является обычно выбором значения по умолчанию. Как упомянуто выше, этот тип данных никогда не должен использоваться для точных значений, таких как валюта.
  • булев: boolean у типа данных есть только два возможных значения: true и false . Используйте этот тип данных для простых флагов та истина/ложь дорожки условия. Этот тип данных представляет один бит информации, но ее «размер» не что-то, что это точно определяется.
  • случайная работа: char тип данных является единственным 16-разрядным символом Unicode. У этого есть минимальное значение ‘\u0000’ (или 0) и максимальное значение ‘\uffff’ (или 65 535 содержащий).

В дополнение к восьми примитивным упомянутым выше типам данных язык программирования Java также оказывает специальную поддержку для символьных строк через java.lang. Строка class. Включение Вашей символьной строки в пределах двойных кавычек автоматически создаст новое String объект; например, String s = «this is a string»; . String объекты являются неизменными, что означает, что когда-то создаваемый, их значения не могут быть изменены. String class не является технически примитивным типом данных, но рассмотрением специальной поддержки, оказанной этому языком, Вы будете, вероятно, склонны думать об этом как таковой. Вы узнаете больше String class в Простых Объектах данных

Значения по умолчанию

Не всегда необходимо присвоить значение, когда поле объявляется. Поля, которые объявляются, но не инициализируются, будут установлены в разумное значение по умолчанию компилятором. Вообще говоря, это значение по умолчанию будет нулем или null , В зависимости от типа данных. Доверие таким значениям по умолчанию, однако, обычно считают плохим стилем программирования.

Следующая диаграмма суммирует значения по умолчанию для вышеупомянутых типов данных.

Тип данных Значение по умолчанию (для полей)
байт 0
короткий 0
интервал 0
долго 0L
плавание 0.0f
двойной 0.0d
случайная работа ‘\u0000’
Строка (или любой объект) нуль
булев ложь

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

Литералы

Вы, возможно, заметили что new ключевое слово не используется, инициализируя переменную типа примитива. Типы примитивов являются специальными типами данных, встроенными в язык; они не объекты, создаваемые из class. Литерал является представлением исходного кода фиксированного значения; литералы представляются непосредственно в Вашем коде, не требуя вычисления. Как показано ниже, возможно присвоить литерал переменной типа примитива:

boolean result = true; char capitalC = 'C'; byte b = 100; short s = 10000; int i = 100000;
Целочисленные Литералы

Целочисленный литерал имеет тип long если это заканчивается буквой L или l ; иначе это имеет тип int . Рекомендуется, чтобы Вы использовали прописную букву L потому что строчная буква l твердо различить от цифры 1 .

Значения целочисленных типов byte , short , int , и long может быть создан из int литералы. Значения типа long это превышает диапазон int может быть создан из long литералы. Целочисленные литералы могут быть выражены этими системами счисления:

  • Десятичное число: Базируйтесь 10, чьи цифры состоит из чисел 0 до 9; это — система счисления, Вы используете каждый день
  • Шестнадцатеричный: Базируйтесь 16, чьи цифры состоят из чисел 0 до 9 и буквы A через F
  • Двоичный файл: Базируйтесь 2, чьи цифры состоит из номеров 0 и 1 (можно создать двоичные литералы в Java SE 7 и позже),

Для программирования общего назначения десятичная система счисления, вероятно, будет единственной системой счисления, которую Вы будете когда-либо использовать. Однако, если Вы должны использовать другую систему счисления, следующий пример показывает корректный синтаксис. Префикс 0x указывает шестнадцатеричный и 0b указывает на двоичный файл:

// The number 26, in decimal int decVal = 26; // The number 26, in hexadecimal int hexVal = 0x1a; // The number 26, in binary int binVal = 0b11010;
Литералы с плавающей точкой

Литерал с плавающей точкой имеет тип float если это заканчивается буквой F или f ; иначе его тип double и это может дополнительно закончиться буквой D или d .

Типы с плавающей точкой ( float и double ) может также быть выражен, используя E или e (для экспоненциального представления), F или f (32-разрядный литерал плавающий) и D или d (64-разрядный двойной литерал; это — значение по умолчанию и условно опускается).

double d1 = 123.4; // same value as d1, but in scientific notation double d2 = 1.234e2; float f1 = 123.4f;
Символьные и Строковые литералы

Литералы типов char и String может содержать любой Unicode (UTF-16) символы. Если Ваш редактор и файловая система позволяют это, можно использовать такие символы непосредственно в Вашем коде. В противном случае можно использовать «escape Unicode» такой как ‘\u0108’ (капитал C с циркумфлексом), или «S\u00ED Se\u00F1or» (Sí Señor на испанском языке). Всегда используйте ‘одинарные кавычки’ для char литералы и «двойные кавычки» для String литералы. Escape-последовательности Unicode могут использоваться в другом месте в программе (такой как в именах полей, например), не только в char или String литералы.

Язык программирования Java также поддерживает несколько специальных escape-последовательностей для char и String литералы: \b (клавиша Backspace), \t (вкладка), \n (перевод строки), \f (перевод формата), \r (возврат каретки), \» (двойная кавычка), \’ (одинарная кавычка), и \\ (наклонная черта влево).

Есть также специальное предложение null литерал, который может использоваться в качестве значения для любого ссылочного типа. null может быть присвоен любой переменной, кроме переменных типов примитивов. Есть немного, можно сделать с a null значение вне тестирования на его присутствие. Поэтому, null часто используется в программах в качестве маркера, чтобы указать, что некоторый объект недоступен.

Наконец, есть также специальный вид литерала, названного литералом class, сформированным, беря имя типа и добавление» .class» ; например, String.class . Это обращается к объекту (типа Class ) это представляет тип непосредственно.

Используя Символы подчеркивания в Числовых Литералах

В Java SE 7 и позже, любое число символов подчеркивания ( _ ) может появиться где угодно между цифрами в числовом литерале. Эта опция позволяет Вам, например. разделить группы цифр в числовых литералах, которые могут улучшить удобочитаемость Вашего кода.

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

Следующий пример показывает другие способы, которыми можно использовать подчеркивание в числовых литералах:

long creditCardNumber = 1234_5678_9012_3456L; long socialSecurityNumber = 999_99_9999L; float pi = 3.14_15F; long hexBytes = 0xFF_EC_DE_5E; long hexWords = 0xCAFE_BABE; long maxLong = 0x7fff_ffff_ffff_ffffL; byte nybbles = 0b0010_0101; long bytes = 0b11010010_01101001_10010100_10010010;

Можно поместить подчеркивания только между цифрами; невозможно поместить подчеркивания в следующие места:

  • Вначале или конец числа
  • Смежный с десятичной точкой в литерале с плавающей точкой
  • До F или L суффикс
  • В позициях, где строка цифр ожидается

Следующие примеры демонстрируют допустимые и недопустимые размещения подчеркивания (которые выделяются) в числовых литералах:

// Invalid: cannot put underscores // adjacent to a decimal point float pi1 = 3_.1415F; // Invalid: cannot put underscores // adjacent to a decimal point float pi2 = 3._1415F; // Invalid: cannot put underscores // prior to an L suffix long socialSecurityNumber1 = 999_99_9999_L; // This is an identifier, not // a numeric literal int x1 = _52; // OK (decimal literal) int x2 = 5_2; // Invalid: cannot put underscores // At the end of a literal int x3 = 52_; // OK (decimal literal) int x4 = 5_______2; // Invalid: cannot put underscores // in the 0x radix prefix int x5 = 0_x52; // Invalid: cannot put underscores // at the beginning of a number int x6 = 0x_52; // OK (hexadecimal literal) int x7 = 0x5_2; // Invalid: cannot put underscores // at the end of a number int x8 = 0x52_;

Ваше использование этой страницы и всего материала на страницах под «Учебным баннером» Java подвергается этим официальным уведомлениям.

Присвоить значение глобальной переменной в потоке java

Я считываю с файла матрицу чисел. Я должен найти максимальное значение каждой строки, и для каждого поиска надо открыть поток. Я создал пустой массив и присваиваю i элементу значение в потоке. Но когда вывожу в конце, при выводе на экран, эти числа все так же равны 0. Я так полагаю это из-за того, что вывод производится в то время, как потоки еще работают, а потому присваивания не происходит. Как мне заставить поток с выводом ждать, пока завершатся потоки подсчета максимального значения?

 String input = io.read(); // считаная с файла строка с матрицей String[] rows = input.split(System.lineSeparator()); int[] maxOfEachRow = new int[rows.length]; for (int i = 0; i < rows.length; i++) < int finalI = i; new Thread() < @Override public void run() < int max = 0; String[] numbers = rows[finalI].trim().split(" "); for (int j = 0; j < numbers.length; j++) < if (Integer.parseInt(numbers[j]) >max) < max = Integer.parseInt(numbers[j]); try < sleep(1); >catch (InterruptedException e) < e.printStackTrace(); >> > maxOfEachRow[finalI] = max; > >.start(); > for (int max : maxOfEachRow)

Отслеживать
задан 11 апр 2021 в 11:51
Topinambur Topinambur
325 3 3 серебряных знака 15 15 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

использовать такой код

myThread_turn = new Thread(new Runnable() < @Override public void run() < /// Здесь вычисления >>); myThread_turn.start(); // запускаем try < myThread_turn.join(); >catch (InterruptedException e) < >/// Здесь вывод результата 

Или выводить результат в потоке

 new Thread() < @Override public void run() < int max = 0; String[] numbers = rows[finalI].trim().split(" "); for (int j = 0; j < numbers.length; j++) < if (Integer.parseInt(numbers[j]) >max) < max = Integer.parseInt(numbers[j]); try < sleep(1); >catch (InterruptedException e) < e.printStackTrace(); >> > maxOfEachRow[finalI] = max; new Handler(Looper.getMainLooper()).post(new Runnable() < @Override public void run() < for (int max : maxOfEachRow) < System.out.println(max); >> >); > >.start(); 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *